<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>Skilful: Исходный файл Skilful/ChartV2/AxisPlot/Axis.cs</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javaScript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body onload='searchBox.OnSelectItem(0);'>
<!-- Создано системой Doxygen 1.7.1 -->
<script type="text/javascript"><!--
var searchBox = new SearchBox("searchBox", "search",false,'Поиск');
--></script>
<div class="navigation" id="top">
  <div class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Титульная&nbsp;страница</span></a></li>
      <li><a href="namespaces.html"><span>Пакеты</span></a></li>
      <li><a href="annotated.html"><span>Классы</span></a></li>
      <li class="current"><a href="files.html"><span>Файлы</span></a></li>
      <li><a href="dirs.html"><span>Алфавитный&nbsp;указатель&nbsp;директорий</span></a></li>
      <li id="searchli">
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Поиск" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>Файлы</span></a></li>
    </ul>
  </div>
  <div class="navpath">
    <ul>
      <li><a class="el" href="dir_7adcdc1edff7620168fbc20357cad448.html">Skilful</a>      </li>
      <li><a class="el" href="dir_8daa841e026a5c92daaf3ffe66f86a47.html">ChartV2</a>      </li>
      <li><a class="el" href="dir_db22336d0d20789ce8ea0b5152784721.html">AxisPlot</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="headertitle">
<h1>Axis.cs</h1>  </div>
</div>
<div class="contents">
<a href="_axis_8cs.html">См. документацию.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 ﻿<span class="comment">//---------------------------------------------------------------------------------------------------------------</span>
<a name="l00002"></a>00002 <span class="comment">// Skilful. Tactica Adversa graphic and analysis tool.</span>
<a name="l00003"></a>00003 <span class="comment">// Copyright (C) 2010 &quot;...&quot;, Logvinenko Eugeniy (manuka)</span>
<a name="l00004"></a>00004 <span class="comment">//</span>
<a name="l00005"></a>00005 <span class="comment">// This program is free software; you can redistribute it and/or</span>
<a name="l00006"></a>00006 <span class="comment">// modify it under the terms of the GNU General Public License</span>
<a name="l00007"></a>00007 <span class="comment">// as published by the Free Software Foundation; either version 2</span>
<a name="l00008"></a>00008 <span class="comment">// of the License, or (at your option) any later version.</span>
<a name="l00009"></a>00009 <span class="comment">//</span>
<a name="l00010"></a>00010 <span class="comment">// This program is distributed in the hope that it will be useful,</span>
<a name="l00011"></a>00011 <span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<a name="l00012"></a>00012 <span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</span>
<a name="l00013"></a>00013 <span class="comment">// GNU General Public License for more details.</span>
<a name="l00014"></a>00014 <span class="comment">//</span>
<a name="l00015"></a>00015 <span class="comment">// You should have received a copy of the GNU General Public License</span>
<a name="l00016"></a>00016 <span class="comment">// along with this program; if not, write to the Free Software</span>
<a name="l00017"></a>00017 <span class="comment">// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.</span>
<a name="l00018"></a>00018 <span class="comment">//</span>
<a name="l00019"></a>00019 <span class="comment">// mail: support@protoforma.com </span>
<a name="l00020"></a>00020 <span class="comment">//---------------------------------------------------------------------------------------------------------------</span>
<a name="l00021"></a>00021 
<a name="l00022"></a>00022 
<a name="l00023"></a>00023 <span class="keyword">using</span> System;
<a name="l00024"></a>00024 <span class="keyword">using</span> System.Collections.Generic;
<a name="l00025"></a>00025 <span class="keyword">using</span> System.Drawing;
<a name="l00026"></a>00026 <span class="keyword">using</span> System.Text;
<a name="l00027"></a>00027 <span class="keyword">using</span> Skilful.QuotesManager;
<a name="l00028"></a>00028 
<a name="l00029"></a><a class="code" href="namespace_chart_v2_1_1_axis___plot.html">00029</a> <span class="keyword">namespace </span>ChartV2.Axis_Plot
<a name="l00030"></a>00030 {
<a name="l00031"></a><a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html">00031</a>     <span class="keyword">public</span> <span class="keyword">abstract</span> <span class="keyword">class </span><a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html">Axis</a>
<a name="l00032"></a>00032     {
<a name="l00033"></a><a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html#a78e41d83577e79c95706132cd2ed7cc9">00033</a>         <span class="keyword">public</span> Styles.AxisStyle style;
<a name="l00034"></a><a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html#a6400964dceb2251686c69fa816cc0ab4">00034</a>         <span class="keyword">public</span> List&lt;Data.Series&gt; list;
<a name="l00035"></a>00035 
<a name="l00036"></a><a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html#af274964b649f1e453b2ef9a83154ffef">00036</a>         <span class="keyword">public</span> <span class="keyword">enum</span> <a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html#af274964b649f1e453b2ef9a83154ffef">PeriodToDraw</a> {years,months,weeks, days, hours, minutes, seconds, chartIsOutSideTheBonds }
<a name="l00037"></a><a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html#aaa4eab94f18ce29f3c77723a06f150ee">00037</a>         <span class="keyword">public</span> <a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html#af274964b649f1e453b2ef9a83154ffef">PeriodToDraw</a> period = <a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html#af274964b649f1e453b2ef9a83154ffef">PeriodToDraw</a>.seconds;
<a name="l00038"></a><a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html#a2517273a568ae8574b63a746728c887b">00038</a>         <span class="keyword">public</span> DateTime start1;
<a name="l00039"></a><a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html#a28daae511a7316be49453ee779d68826">00039</a>         <span class="keyword">public</span> <span class="keywordtype">int</span> startTime;
<a name="l00040"></a><a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html#a9abc60bcf4a3bdce1b54f844c2eee090">00040</a>         <span class="keyword">public</span> DateTime end1;
<a name="l00041"></a><a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html#a15f94e6df8543ea2c983f52e83512bcb">00041</a>         <span class="keyword">public</span> TimeSpan res1;
<a name="l00042"></a><a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html#a1a6b7fab14c9fc642bd7dc4e3fa80e01">00042</a>         <span class="keyword">public</span> <span class="keywordtype">float</span> timeMin;
<a name="l00043"></a><a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html#aa469744c5bba44e770dcbf7ac482dcf6">00043</a>         <span class="keyword">public</span> <span class="keywordtype">float</span> timeMax;
<a name="l00044"></a><a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html#adae5d803a7c5b1d9bebe79cb23fd9cbd">00044</a>         <span class="keyword">public</span> <span class="keywordtype">int</span> BarNumber;
<a name="l00045"></a>00045 
<a name="l00046"></a><a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html#a5167e9c373f9b7729aac0cafb30e703a">00046</a>         <span class="keyword">public</span> <span class="keywordtype">string</span> dateTimeFormat = <span class="stringliteral">&quot;&quot;</span>;
<a name="l00047"></a>00047 
<a name="l00048"></a>00048   
<a name="l00049"></a>00049         <span class="comment">//переменная для пеервода промежуточных значений цены в логшкалу.</span>
<a name="l00050"></a><a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html#a3903bf99f69cae88f2a17e9ded860cce">00050</a>         <span class="keyword">public</span> <span class="keywordtype">float</span> s;
<a name="l00051"></a><a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html#a11b52f6a425a1cc940236e91d3232186">00051</a>         <span class="keyword">public</span> <span class="keywordtype">string</span> price_format;
<a name="l00052"></a>00052 
<a name="l00053"></a><a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html#ac136910cf17f43c0ba862978519dac53">00053</a>         <span class="keyword">public</span> SizeF lableSize;
<a name="l00054"></a><a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html#abe6a229ea0cc9f8bd47857dc966018ed">00054</a>         <span class="keyword">public</span> <span class="keywordtype">float</span> howManyCanFit;
<a name="l00055"></a>00055 
<a name="l00056"></a>00056         <span class="comment">//Bools</span>
<a name="l00057"></a><a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html#aef70b72f8d9b3c9c18825b0b8dbbdf6c">00057</a>         <span class="keyword">public</span> <span class="keywordtype">bool</span> ShouldDrawBorder;
<a name="l00058"></a><a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html#ae44ce22bb09929029d93471408bdf94b">00058</a>         <span class="keyword">public</span> <span class="keywordtype">bool</span> IsVisible;
<a name="l00059"></a>00059 
<a name="l00060"></a><a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html#a3e8f6396432011311c3c2f7679fd8564">00060</a>         <span class="keyword">public</span> <a class="code" href="class_chart_v2_1_1_axis___plot_1_1_cursor_info_lable.html">CursorInfoLable</a> cursorLable;
<a name="l00061"></a><a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html#ad6d35896ad6eeea6ba519b570b37fb01">00061</a>         <span class="keyword">public</span> Dictionary&lt;int, CursorInfoLable&gt; targetLable = <span class="keyword">new</span> Dictionary&lt;int, CursorInfoLable&gt;();
<a name="l00062"></a><a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html#ad3ccdf9528cdbbfe8d5721b2bedf1262">00062</a>         <span class="keyword">public</span> <span class="keywordtype">bool</span> IsTargetsVisible = <span class="keyword">false</span>;
<a name="l00063"></a><a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html#a81d27c115fa31888ae58065ac774ba5a">00063</a>         <span class="keyword">public</span> <span class="keywordtype">int</span> barIndex = 0;
<a name="l00064"></a>00064 
<a name="l00065"></a>00065         <span class="comment">//BMPs</span>
<a name="l00066"></a><a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html#a84609e829e68d947d723c1033fd3dfc3">00066</a>         <span class="keyword">public</span> Bitmap bmp;
<a name="l00067"></a><a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html#ad5742e5dc75844d6c4204173d2dc60b8">00067</a>         <span class="keyword">public</span> Graphics g;
<a name="l00068"></a><a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html#a8534bdecf78a034ae7d7b18d827497a7">00068</a>         <span class="keyword">public</span> <a class="code" href="class_chart_v2_1_1_axis___plot_1_1_grid.html">Grid</a> grid;
<a name="l00069"></a>00069         <span class="comment">//temp vars</span>
<a name="l00070"></a><a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html#a6079f3cef61b86032dd7205a4257e9d8">00070</a>         <span class="keyword">public</span> <span class="keywordtype">float</span> tempCoord;
<a name="l00071"></a><a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html#a039c54c966354b9b1d19343ec2b51da4">00071</a>         <span class="keyword">public</span> <span class="keywordtype">float</span> start;
<a name="l00072"></a><a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html#ae8940a10db5a5ce8c7430f12f249bfc3">00072</a>         <span class="keyword">public</span> <span class="keywordtype">float</span> finish;
<a name="l00073"></a><a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html#a5d0c860feed42b79af64e11b471b3825">00073</a>         <span class="keyword">public</span> <span class="keyword">static</span> <span class="keywordtype">string</span> tempString;
<a name="l00074"></a>00074         <span class="comment">//series index</span>
<a name="l00075"></a><a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html#ab16987102d68dcde3aadfa54530607b0">00075</a>         <span class="keyword">public</span> <span class="keywordtype">int</span> ind = 0;
<a name="l00076"></a>00076         <span class="comment">//для хранения коодинаты мыши</span>
<a name="l00077"></a><a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html#a6c7eac6545c184aacce713982aa20fa4">00077</a>         <span class="keyword">public</span> <span class="keywordtype">int</span> mouseCursorXcoordinate;
<a name="l00078"></a>00078         <span class="comment">//Methods</span>
<a name="l00079"></a>00079         <span class="keyword">public</span> <span class="keyword">abstract</span> <span class="keywordtype">void</span> Draw(<span class="keywordtype">int</span>? seriesIndex);
<a name="l00080"></a>00080         <span class="keyword">public</span> <span class="keyword">abstract</span> <span class="keywordtype">void</span> refreshDrawingSurfaces(Rectangle gridSplitterRectangle);
<a name="l00081"></a><a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html#ac602bb1ad3c7074d101d4f3033799344">00081</a>         <span class="keyword">public</span> <span class="keywordtype">int</span> GetPrecisionOf(<span class="keywordtype">float</span> N, <span class="keywordtype">bool</span> CountOnlyZeros)
<a name="l00082"></a>00082         {
<a name="l00083"></a>00083             <span class="keywordflow">if</span> (N == 0)
<a name="l00084"></a>00084                 <span class="keywordflow">return</span> 0;
<a name="l00085"></a>00085             <span class="comment">//  System.Globalization.NumberFormatInfo nfi = new System.Globalization.CultureInfo(&quot;ru-RU&quot;).NumberFormat;</span>
<a name="l00086"></a>00086             <span class="comment">//  nfi.NumberDecimalDigits = 10;</span>
<a name="l00087"></a>00087 
<a name="l00088"></a>00088 
<a name="l00089"></a>00089             <span class="keywordtype">string</span> temp = Convert.ToString(N, null);
<a name="l00090"></a>00090             <span class="keywordflow">if</span> (temp.Contains(<span class="stringliteral">&quot;E&quot;</span>))
<a name="l00091"></a>00091             {
<a name="l00092"></a>00092                 temp = temp.Substring(temp.IndexOf(<span class="charliteral">&#39;E&#39;</span>) + 2, 2);
<a name="l00093"></a>00093                 <span class="keywordflow">return</span> <span class="keywordtype">int</span>.Parse(temp) * (-1);
<a name="l00094"></a>00094             }
<a name="l00095"></a>00095             <span class="keywordtype">int</span> pescision = 0;
<a name="l00096"></a>00096 
<a name="l00097"></a>00097             <span class="keywordflow">if</span> (N &lt; 1)
<a name="l00098"></a>00098             {
<a name="l00099"></a>00099                 pescision = -1;
<a name="l00100"></a>00100                 temp = temp.Remove(0, 2);
<a name="l00101"></a>00101                 <span class="keywordflow">while</span> (temp.StartsWith(<span class="stringliteral">&quot;0&quot;</span>))
<a name="l00102"></a>00102                 {
<a name="l00103"></a>00103                     temp = temp.Remove(0, 1);
<a name="l00104"></a>00104                     pescision--;
<a name="l00105"></a>00105                 }
<a name="l00106"></a>00106 
<a name="l00107"></a>00107             }
<a name="l00108"></a>00108             <span class="keywordflow">else</span>
<a name="l00109"></a>00109             {
<a name="l00110"></a>00110                 <span class="keywordflow">if</span> (temp.Contains(<span class="stringliteral">&quot;,&quot;</span>) )
<a name="l00111"></a>00111                 {
<a name="l00112"></a>00112                     <span class="keywordflow">while</span> (!temp.StartsWith(<span class="stringliteral">&quot;,&quot;</span>))
<a name="l00113"></a>00113                     {
<a name="l00114"></a>00114 
<a name="l00115"></a>00115                         pescision++;
<a name="l00116"></a>00116                         temp = temp.Remove(0, 1);
<a name="l00117"></a>00117                     }
<a name="l00118"></a>00118                 }<span class="keywordflow">else</span> <span class="keywordflow">if</span> (temp.Contains(<span class="stringliteral">&quot;.&quot;</span>))
<a name="l00119"></a>00119                 {
<a name="l00120"></a>00120                     <span class="keywordflow">while</span> (!temp.StartsWith(<span class="stringliteral">&quot;.&quot;</span>))
<a name="l00121"></a>00121                     {
<a name="l00122"></a>00122 
<a name="l00123"></a>00123                         pescision++;
<a name="l00124"></a>00124                         temp = temp.Remove(0, 1);
<a name="l00125"></a>00125                     }
<a name="l00126"></a>00126                 }
<a name="l00127"></a>00127                 <span class="keywordflow">else</span>
<a name="l00128"></a>00128                 {
<a name="l00129"></a>00129                     <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; temp.Length; i++)
<a name="l00130"></a>00130                     {
<a name="l00131"></a>00131 
<a name="l00132"></a>00132                         pescision++;
<a name="l00133"></a>00133 
<a name="l00134"></a>00134                     }
<a name="l00135"></a>00135                 }
<a name="l00136"></a>00136 
<a name="l00137"></a>00137 
<a name="l00138"></a>00138             }
<a name="l00139"></a>00139             <span class="keywordflow">return</span> pescision;
<a name="l00140"></a>00140         }
<a name="l00141"></a><a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html#a4970213187ac71e8a1529661dc0d1739">00141</a>         <span class="keyword">public</span> <span class="keyword">static</span> <span class="keywordtype">string</span> GetCheckedString(<span class="keywordtype">int</span> time)
<a name="l00142"></a>00142         {
<a name="l00143"></a>00143             tempString = <span class="stringliteral">&quot;&quot;</span>;
<a name="l00144"></a>00144             <span class="keywordflow">switch</span> (time.ToString().Length)
<a name="l00145"></a>00145             {
<a name="l00146"></a>00146                 <span class="keywordflow">case</span> 1:
<a name="l00147"></a>00147                     <span class="comment">//время = 00:00:0X</span>
<a name="l00148"></a>00148                     <span class="keywordflow">if</span> (time == 0)
<a name="l00149"></a>00149                     {
<a name="l00150"></a>00150                         tempString = <span class="stringliteral">&quot;000000&quot;</span>;
<a name="l00151"></a>00151                         <span class="keywordflow">return</span> tempString;
<a name="l00152"></a>00152                     }
<a name="l00153"></a>00153                     <span class="keywordflow">else</span>
<a name="l00154"></a>00154                         tempString = <span class="stringliteral">&quot;00000&quot;</span>;
<a name="l00155"></a>00155                     <span class="keywordflow">break</span>;
<a name="l00156"></a>00156                 <span class="keywordflow">case</span> 2:
<a name="l00157"></a>00157                     <span class="comment">//время = 00:00:XX</span>
<a name="l00158"></a>00158                     tempString = <span class="stringliteral">&quot;0000&quot;</span>;
<a name="l00159"></a>00159                     <span class="keywordflow">break</span>;
<a name="l00160"></a>00160                 <span class="keywordflow">case</span> 3:
<a name="l00161"></a>00161                     <span class="comment">//время = 00:0X:XX</span>
<a name="l00162"></a>00162                     tempString = <span class="stringliteral">&quot;000&quot;</span>;
<a name="l00163"></a>00163                     <span class="keywordflow">break</span>;
<a name="l00164"></a>00164                 <span class="keywordflow">case</span> 4:
<a name="l00165"></a>00165                     <span class="comment">//время = 00:XX:0X</span>
<a name="l00166"></a>00166                     tempString = <span class="stringliteral">&quot;00&quot;</span>;
<a name="l00167"></a>00167                     <span class="keywordflow">break</span>;
<a name="l00168"></a>00168                 <span class="keywordflow">case</span> 5:
<a name="l00169"></a>00169                     <span class="comment">//время = 0X:XX:0X</span>
<a name="l00170"></a>00170                     tempString = <span class="stringliteral">&quot;0&quot;</span>;
<a name="l00171"></a>00171                     <span class="keywordflow">break</span>;
<a name="l00172"></a>00172 
<a name="l00173"></a>00173             }
<a name="l00174"></a>00174             <span class="keywordflow">return</span> tempString + time.ToString();
<a name="l00175"></a>00175         }
<a name="l00176"></a>00176     }
<a name="l00177"></a>00177 
<a name="l00178"></a>00178 
<a name="l00179"></a><a class="code" href="class_chart_v2_1_1_axis___plot_1_1_top_axis_as_info_panel.html">00179</a>     <span class="keyword">public</span> <span class="keyword">class </span><a class="code" href="class_chart_v2_1_1_axis___plot_1_1_top_axis_as_info_panel.html">TopAxisAsInfoPanel</a> : <a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html">Axis</a>
<a name="l00180"></a>00180     {
<a name="l00181"></a>00181 
<a name="l00182"></a>00182         <span class="keyword">private</span> DateTime dt;
<a name="l00183"></a>00183         <a class="code" href="class_chart_v2_1_1_control.html">Control</a> parentControl;
<a name="l00184"></a><a class="code" href="class_chart_v2_1_1_axis___plot_1_1_top_axis_as_info_panel.html#aff04f3c6677d2270c160a01be7810ef9">00184</a>         <span class="keyword">public</span> <a class="code" href="class_chart_v2_1_1_axis___plot_1_1_top_axis_as_info_panel.html">TopAxisAsInfoPanel</a>(Rectangle rect, <a class="code" href="class_chart_v2_1_1_control.html">Control</a> control)
<a name="l00185"></a>00185         {
<a name="l00186"></a>00186             parentControl = control;
<a name="l00187"></a>00187             style =  <span class="keyword">new</span> Styles.AxisStyle(Color.WhiteSmoke, Brushes.Black, FontFamily.GenericSansSerif, 9, FontStyle.Regular);
<a name="l00188"></a>00188             style.magorTickFont = Skilful.Sample.AxisStyleTop;
<a name="l00189"></a>00189             refreshDrawingSurfaces(rect);
<a name="l00190"></a>00190         }
<a name="l00191"></a>00191         
<a name="l00192"></a><a class="code" href="class_chart_v2_1_1_axis___plot_1_1_top_axis_as_info_panel.html#a972e125142767e417e98da5775208128">00192</a>         <span class="keyword">public</span> <span class="keyword">override</span> <span class="keywordtype">void</span> refreshDrawingSurfaces(Rectangle gridSplitterRectangle)
<a name="l00193"></a>00193         {
<a name="l00194"></a>00194             <span class="keywordflow">if</span> (gridSplitterRectangle.Width &gt; 0 &amp;&amp; gridSplitterRectangle.Height &gt; 0)
<a name="l00195"></a>00195             {
<a name="l00196"></a>00196                 bmp = <span class="keyword">new</span> Bitmap(gridSplitterRectangle.Width, gridSplitterRectangle.Height);
<a name="l00197"></a>00197                 g = Graphics.FromImage(bmp);
<a name="l00198"></a>00198 
<a name="l00199"></a>00199             }
<a name="l00200"></a>00200             <span class="keywordflow">else</span>
<a name="l00201"></a>00201             {
<a name="l00202"></a>00202                 bmp = <span class="keyword">new</span> Bitmap(10, 10);
<a name="l00203"></a>00203                 g = Graphics.FromImage(bmp);
<a name="l00204"></a>00204             }
<a name="l00205"></a>00205         }
<a name="l00206"></a>00206 
<a name="l00207"></a>00207 
<a name="l00208"></a>00208         
<a name="l00209"></a>00209 
<a name="l00210"></a><a class="code" href="class_chart_v2_1_1_axis___plot_1_1_top_axis_as_info_panel.html#a1a5c63ec48b5defbcd04c5cc1c47d103">00210</a>         <span class="keyword">public</span> <span class="keyword">override</span> <span class="keywordtype">void</span> Draw(<span class="keywordtype">int</span>? seriesIndex)
<a name="l00211"></a>00211         {
<a name="l00212"></a>00212 
<a name="l00213"></a>00213             <span class="keywordflow">if</span> (list == null)
<a name="l00214"></a>00214                 <span class="keywordflow">return</span>;
<a name="l00215"></a>00215             <span class="keywordflow">if</span> (list.Count == 0)
<a name="l00216"></a>00216             {
<a name="l00217"></a>00217                 g.DrawString(<span class="stringliteral">&quot;No series Selected.&quot;</span>, SystemFonts.DialogFont, Brushes.Beige, Point.Empty);
<a name="l00218"></a>00218             }
<a name="l00219"></a>00219             <span class="keywordflow">else</span>
<a name="l00220"></a>00220             {
<a name="l00221"></a>00221                 ind = (int)seriesIndex;
<a name="l00222"></a>00222             }
<a name="l00223"></a>00223 
<a name="l00224"></a>00224             price_format = list[ind].legend.price_format;
<a name="l00225"></a>00225 
<a name="l00226"></a>00226  
<a name="l00227"></a>00227             <span class="comment">//just to check numbers height</span>
<a name="l00228"></a>00228             g.Clear(style.backColor);
<a name="l00229"></a>00229 
<a name="l00230"></a>00230             <span class="keywordflow">if</span> (ShouldDrawBorder)
<a name="l00231"></a>00231                 g.DrawRectangle(style.borderPen, 0, 0, bmp.Width - 1, bmp.Height - 1);
<a name="l00232"></a>00232 
<a name="l00233"></a>00233             barIndex = (int)list[ind].viewPort.PixelToBarNumber(mouseCursorXcoordinate);
<a name="l00234"></a>00234             
<a name="l00235"></a>00235             <span class="comment">//if (barIndex &lt; 0)</span>
<a name="l00236"></a>00236             <span class="comment">//    barIndex = 0;</span>
<a name="l00237"></a>00237 
<a name="l00238"></a>00238 
<a name="l00239"></a>00239             dt = list[ind].barIndex2Date(barIndex);
<a name="l00240"></a>00240             
<a name="l00241"></a>00241             dateTimeFormat = <span class="stringliteral">&quot;dd.MM.yy&quot;</span> + <span class="stringliteral">&quot; HH:mm&quot;</span>;
<a name="l00242"></a>00242 
<a name="l00243"></a>00243             <span class="keywordtype">string</span> str = <span class="stringliteral">&quot; Bar:&quot;</span> + barIndex.ToString() + <span class="stringliteral">&quot; Date: &quot;</span> + dt.ToString(<span class="stringliteral">&quot;dd.MM.yyyy&quot;</span>) + <span class="stringliteral">&quot; Time: &quot;</span> + dt.ToString(<span class="stringliteral">&quot;HH:mm&quot;</span>) + <span class="stringliteral">&quot; |&quot;</span>;
<a name="l00244"></a>00244 
<a name="l00245"></a>00245             <span class="keywordflow">if</span> (barIndex &gt;= list[ind].data.Count)
<a name="l00246"></a>00246                 barIndex = list[ind].data.Count-1;
<a name="l00247"></a>00247             <span class="keywordflow">if</span> (barIndex &lt; 0)
<a name="l00248"></a>00248                 barIndex = 0;
<a name="l00249"></a>00249 
<a name="l00250"></a>00250             <span class="keywordflow">if</span> (list[ind].legend.log)
<a name="l00251"></a>00251             {
<a name="l00252"></a>00252                 str += <span class="stringliteral">&quot; O: &quot;</span> + (Math.Pow(10, (<span class="keywordtype">double</span>)list[ind].data[barIndex].d[2])).ToString(price_format)
<a name="l00253"></a>00253                     + <span class="stringliteral">&quot; H: &quot;</span> + (Math.Pow(10, (<span class="keywordtype">double</span>)list[ind].data[barIndex].d[3])).ToString(price_format)
<a name="l00254"></a>00254                     + <span class="stringliteral">&quot; L: &quot;</span> + (Math.Pow(10, (<span class="keywordtype">double</span>)list[ind].data[barIndex].d[4])).ToString(price_format)
<a name="l00255"></a>00255                     + <span class="stringliteral">&quot; C: &quot;</span> + (Math.Pow(10, (<span class="keywordtype">double</span>)list[ind].data[barIndex].d[5])).ToString(price_format);
<a name="l00256"></a>00256             }
<a name="l00257"></a>00257             <span class="keywordflow">else</span>
<a name="l00258"></a>00258             {
<a name="l00259"></a>00259                 str += <span class="stringliteral">&quot; O: &quot;</span> + list[ind].data[barIndex].d[2].ToString(price_format)
<a name="l00260"></a>00260                     + <span class="stringliteral">&quot; H: &quot;</span> + list[ind].data[barIndex].d[3].ToString(price_format)
<a name="l00261"></a>00261                     + <span class="stringliteral">&quot; L: &quot;</span> + list[ind].data[barIndex].d[4].ToString(price_format)
<a name="l00262"></a>00262                     + <span class="stringliteral">&quot; C: &quot;</span> + list[ind].data[barIndex].d[5].ToString(price_format);
<a name="l00263"></a>00263             }
<a name="l00264"></a>00264             str += <span class="stringliteral">&quot;  [&quot;</span> + list[ind].legend.symbol;
<a name="l00265"></a>00265             <span class="keywordflow">if</span> (list[ind].legend.frame != <a class="code" href="namespace_skilful_1_1_quotes_manager.html#a5c84c6ba01636871f8f98492b465c315">TF</a>.custom) str += <span class="stringliteral">&quot;:&quot;</span> + list[ind].legend.frame;
<a name="l00266"></a>00266             str += <span class="stringliteral">&quot;]&quot;</span> + <span class="stringliteral">&quot; &quot;</span> + list[ind].data[barIndex].whatExtremum();
<a name="l00267"></a>00267             g.DrawString(str, style.magorTickFont, style.magorFontBrush, Point.Empty);
<a name="l00268"></a>00268 
<a name="l00269"></a>00269             <span class="comment">//вывод реалтайм тиков</span>
<a name="l00270"></a>00270             <span class="keywordtype">float</span> shift = g.MeasureString(str, style.magorTickFont).Width;
<a name="l00271"></a>00271             <span class="comment">//str = &quot;VPMinTime &quot; + list[ind].viewPort.VPMinTime + &quot; VPMaxTime &quot; + list[ind].viewPort.VPMaxTime + &quot; &quot;;</span>
<a name="l00272"></a>00272             str = (list[ind].lastBid &gt; 0) ?
<a name="l00273"></a>00273                 <span class="stringliteral">&quot;Date: &quot;</span> + list[ind].lastTime.ToString(<span class="stringliteral">&quot;dd.MM.yy &quot;</span>) + <span class="stringliteral">&quot;Time: &quot;</span> + list[ind].lastTime.ToString(<span class="stringliteral">&quot;HH:mm:ss | &quot;</span>) +
<a name="l00274"></a>00274                 <span class="stringliteral">&quot;Bid: &quot;</span> + list[ind].lastBid.ToString(price_format) + <span class="stringliteral">&quot; Ask: &quot;</span> + list[ind].lastAsk.ToString(price_format) : <span class="stringliteral">&quot;offline&quot;</span>;
<a name="l00275"></a>00275 
<a name="l00276"></a>00276             SizeF rect = g.MeasureString(str, style.magorTickFont);
<a name="l00277"></a>00277             parentControl.SetTopAxisHeight((<span class="keywordtype">int</span>)((shift + rect.Width) &lt; bmp.Width ? (rect.Height+2) : (rect.Height * 2)));
<a name="l00278"></a>00278             g.DrawString(str, style.magorTickFont, style.magorFontBrush, bmp.Width - rect.Width, (shift + rect.Width) &lt; bmp.Width ? 0 : rect.Height);
<a name="l00279"></a>00279         }
<a name="l00280"></a>00280     }
<a name="l00281"></a>00281 
<a name="l00282"></a>00282 
<a name="l00283"></a><a class="code" href="class_chart_v2_1_1_axis___plot_1_1_bottom_axis_dinamic.html">00283</a>     <span class="keyword">public</span> <span class="keyword">class </span><a class="code" href="class_chart_v2_1_1_axis___plot_1_1_bottom_axis_dinamic.html">BottomAxisDinamic</a> : <a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html">Axis</a>
<a name="l00284"></a>00284     {
<a name="l00285"></a><a class="code" href="class_chart_v2_1_1_axis___plot_1_1_bottom_axis_dinamic.html#ac2df54cf787003c25250bab4e45e2323">00285</a>         <span class="keyword">public</span> <span class="keywordtype">bool</span> shouldDrawAxisRectangle = <span class="keyword">true</span>;
<a name="l00286"></a>00286 
<a name="l00287"></a>00287 
<a name="l00288"></a>00288         <span class="keyword">private</span> <span class="keywordtype">int</span> del = 2;
<a name="l00289"></a>00289 
<a name="l00290"></a>00290         <span class="keyword">private</span> <span class="keywordtype">int</span> stringWidth = 0;
<a name="l00291"></a>00291         <span class="keyword">private</span> <span class="keywordtype">int</span> strHeight = 0;
<a name="l00292"></a>00292         <span class="keyword">private</span> <span class="keywordtype">float</span> TempCoordX = 0;
<a name="l00293"></a>00293         <span class="keyword">private</span> <span class="keywordtype">int</span> lastIndex= 0;
<a name="l00294"></a>00294         <span class="keyword">private</span> <span class="keywordtype">int</span> ii = 0;
<a name="l00295"></a>00295         <span class="keyword">private</span> <span class="keywordtype">string</span> highFrecTime = <span class="stringliteral">&quot;&quot;</span>;
<a name="l00296"></a>00296         <span class="keyword">private</span> <span class="keywordtype">string</span> lowFrecTime = <span class="stringliteral">&quot;&quot;</span>;
<a name="l00297"></a>00297         <span class="keyword">private</span> <span class="keywordtype">string</span> lastHighFrecTime = <span class="stringliteral">&quot;&quot;</span>;
<a name="l00298"></a>00298         <span class="keyword">private</span> <span class="keywordtype">string</span> lastLowFrecTime = <span class="stringliteral">&quot;&quot;</span>;
<a name="l00299"></a>00299         
<a name="l00300"></a>00300 
<a name="l00301"></a>00301          
<a name="l00302"></a><a class="code" href="class_chart_v2_1_1_axis___plot_1_1_bottom_axis_dinamic.html#a57a9ab47ec3664cd30eee00aa7104a9b">00302</a>         <span class="keyword">public</span> <a class="code" href="class_chart_v2_1_1_axis___plot_1_1_bottom_axis_dinamic.html">BottomAxisDinamic</a>(Rectangle rect)
<a name="l00303"></a>00303         {
<a name="l00304"></a>00304             cursorLable = <span class="keyword">new</span> <a class="code" href="class_chart_v2_1_1_axis___plot_1_1_cursor_info_lable.html">CursorInfoLable</a>();    
<a name="l00305"></a>00305             style = <span class="keyword">new</span> Styles.AxisStyle();
<a name="l00306"></a>00306           <span class="comment">//  style.magorTickFont = Skilful.Sample.AxisStyleBottom;</span>
<a name="l00307"></a>00307             cursorLable.font = style.magorTickFont;
<a name="l00308"></a>00308             refreshDrawingSurfaces(rect);
<a name="l00309"></a>00309         }
<a name="l00310"></a><a class="code" href="class_chart_v2_1_1_axis___plot_1_1_bottom_axis_dinamic.html#acc360514d5e856f4643cfe158d0e4397">00310</a>         <span class="keyword">public</span> <span class="keyword">override</span> <span class="keywordtype">void</span> refreshDrawingSurfaces(Rectangle gridSplitterRectangle)
<a name="l00311"></a>00311         {
<a name="l00312"></a>00312             <span class="keywordflow">if</span> (gridSplitterRectangle.Width &gt; 0 &amp;&amp; gridSplitterRectangle.Height &gt; 0)
<a name="l00313"></a>00313             {
<a name="l00314"></a>00314                 bmp = <span class="keyword">new</span> Bitmap(gridSplitterRectangle.Width, gridSplitterRectangle.Height);
<a name="l00315"></a>00315                 g = Graphics.FromImage(bmp);
<a name="l00316"></a>00316 
<a name="l00317"></a>00317             }
<a name="l00318"></a>00318             <span class="keywordflow">else</span>
<a name="l00319"></a>00319             {
<a name="l00320"></a>00320                 bmp = <span class="keyword">new</span> Bitmap(10, 10);
<a name="l00321"></a>00321                 g = Graphics.FromImage(bmp);
<a name="l00322"></a>00322             }
<a name="l00323"></a>00323         }
<a name="l00324"></a>00324          
<a name="l00325"></a><a class="code" href="class_chart_v2_1_1_axis___plot_1_1_bottom_axis_dinamic.html#a1218d7eb7ca63c4c58e9a5719f0620d5">00325</a>         <span class="keyword">public</span> <span class="keyword">override</span> <span class="keywordtype">void</span> Draw(<span class="keywordtype">int</span>? seriesIndex)
<a name="l00326"></a>00326          {
<a name="l00327"></a>00327                 <span class="keywordflow">if</span> (list == null)
<a name="l00328"></a>00328                 <span class="keywordflow">return</span>;
<a name="l00329"></a>00329            <span class="comment">//  public void DrawXaxis(DataSeries ds)</span>
<a name="l00330"></a>00330 
<a name="l00331"></a>00331                 <span class="keywordflow">if</span> (list == null)
<a name="l00332"></a>00332                     <span class="keywordflow">return</span>;
<a name="l00333"></a>00333                 <span class="keywordflow">if</span> (list.Count == 0)
<a name="l00334"></a>00334                 {
<a name="l00335"></a>00335 
<a name="l00336"></a>00336                     g.DrawString(<span class="stringliteral">&quot;No series Selected.&quot;</span>, SystemFonts.DialogFont, Brushes.Beige, Point.Empty);
<a name="l00337"></a>00337                 }
<a name="l00338"></a>00338                 <span class="keywordflow">else</span>
<a name="l00339"></a>00339                 {
<a name="l00340"></a>00340                     ind = (int)seriesIndex;
<a name="l00341"></a>00341                 }
<a name="l00342"></a>00342 
<a name="l00343"></a>00343 
<a name="l00344"></a>00344 
<a name="l00345"></a>00345                 <span class="comment">//just to check numbers height</span>
<a name="l00346"></a>00346                 g.Clear(style.backColor);
<a name="l00347"></a>00347 
<a name="l00348"></a>00348                 <span class="keywordflow">if</span> (ShouldDrawBorder)
<a name="l00349"></a>00349                     g.DrawRectangle(style.borderPen, 0, 0, bmp.Width - 1, bmp.Height - 1);
<a name="l00351"></a>00351             tempString = <span class="stringliteral">&quot;:10m&quot;</span>;
<a name="l00352"></a>00352             stringWidth = (int)g.MeasureString(tempString, style.magorTickFont).Width;
<a name="l00353"></a>00353             howManyCanFit = bmp.Width / stringWidth;
<a name="l00354"></a>00354             strHeight = (int)g.MeasureString(tempString, style.magorTickFont).Height;
<a name="l00355"></a>00355 
<a name="l00356"></a>00356             g.DrawLine(style.magorTickPen, 0, strHeight, bmp.Width, strHeight);
<a name="l00357"></a>00357             g.DrawLine(style.magorTickPen, 0, strHeight * 2, bmp.Width, strHeight * 2);
<a name="l00358"></a>00358 
<a name="l00359"></a>00359 <span class="preprocessor">                #region NoTimeArray</span>
<a name="l00360"></a>00360 <span class="preprocessor"></span>
<a name="l00361"></a>00361                 timeMin = list[ind].viewPort.VPMinTime;
<a name="l00362"></a>00362                 timeMax = list[ind].viewPort.VPMaxTime;
<a name="l00363"></a>00363 
<a name="l00364"></a>00364 
<a name="l00365"></a>00365                 <span class="keywordtype">float</span> pointsPerLable = (timeMax - timeMin) / howManyCanFit;
<a name="l00366"></a>00366 
<a name="l00367"></a>00367 
<a name="l00368"></a>00368                 TempCoordX = 0;
<a name="l00369"></a>00369 
<a name="l00370"></a>00370                 <span class="keywordflow">if</span> (timeMin &lt; 0)
<a name="l00371"></a>00371                     startTime = 0;
<a name="l00372"></a>00372                 <span class="keywordflow">else</span>
<a name="l00373"></a>00373                     startTime = (int)timeMin;
<a name="l00374"></a>00374                 grid.verticalLevelsArray.Clear();
<a name="l00375"></a>00375                 lastIndex = 0 - (int)pointsPerLable - 1;
<a name="l00376"></a>00376                 ii = 0;
<a name="l00377"></a>00377 
<a name="l00378"></a>00378 
<a name="l00379"></a>00379                 <span class="keywordflow">if</span> (timeMax &gt; list[ind].data.Count)
<a name="l00380"></a>00380                 {
<a name="l00381"></a>00381                     <span class="keywordflow">if</span> (startTime &lt; list[ind].data.Count &amp;&amp; list[ind].data.Count &gt; 0)
<a name="l00382"></a>00382                     {
<a name="l00383"></a>00383 
<a name="l00384"></a>00384 
<a name="l00385"></a>00385                         tempString = list[ind].data[startTime].d[0].ToString() + GetCheckedString((<span class="keywordtype">int</span>)list[ind].data[startTime].d[1]);
<a name="l00386"></a>00386                         start1 = DateTime.ParseExact(tempString, <span class="stringliteral">&quot;yyyyMMddHHmmss&quot;</span>, null);
<a name="l00387"></a>00387                         <span class="comment">//tempString = list[ind].data[list[ind].data.Count - 1].d[0].ToString() + GetCheckedString((int)list[ind].data[startTime].d[1]);</span>
<a name="l00388"></a>00388                         <span class="comment">//end1 = DateTime.ParseExact(tempString, &quot;yyyyMMddHHmmss&quot;, null);</span>
<a name="l00389"></a>00389                         end1 = list[ind].barIndex2Date((<span class="keywordtype">int</span>)timeMax);
<a name="l00390"></a>00390                         res1 = end1 - start1;
<a name="l00391"></a>00391                         <span class="keywordflow">if</span> (res1.Seconds &gt; 1)
<a name="l00392"></a>00392                             period = <a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html#af274964b649f1e453b2ef9a83154ffef">PeriodToDraw</a>.seconds;
<a name="l00393"></a>00393                         <span class="keywordflow">if</span> (res1.Minutes &gt; 2)
<a name="l00394"></a>00394                             period = <a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html#af274964b649f1e453b2ef9a83154ffef">PeriodToDraw</a>.minutes;
<a name="l00395"></a>00395                         <span class="keywordflow">if</span> (res1.Hours &gt; 2)
<a name="l00396"></a>00396                             period = <a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html#af274964b649f1e453b2ef9a83154ffef">PeriodToDraw</a>.hours;
<a name="l00397"></a>00397                         <span class="keywordflow">if</span> (res1.Days &gt; 0 || res1.Hours &gt; 10)
<a name="l00398"></a>00398                             period = <a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html#af274964b649f1e453b2ef9a83154ffef">PeriodToDraw</a>.days;
<a name="l00399"></a>00399                     }
<a name="l00400"></a>00400 
<a name="l00401"></a>00401                 }
<a name="l00402"></a>00402                 <span class="keywordflow">if</span> (timeMax &lt;= list[ind].data.Count)
<a name="l00403"></a>00403                 {
<a name="l00404"></a>00404                     <span class="keywordflow">if</span> (startTime &lt; list[ind].data.Count &amp;&amp; ((<span class="keywordtype">int</span>)timeMax - 1) &gt; 0)
<a name="l00405"></a>00405                     {
<a name="l00406"></a>00406 
<a name="l00407"></a>00407 
<a name="l00408"></a>00408 
<a name="l00409"></a>00409                         tempString = list[ind].data[startTime].d[0].ToString() + GetCheckedString((<span class="keywordtype">int</span>)list[ind].data[startTime].d[1]);
<a name="l00410"></a>00410                         start1 = DateTime.ParseExact(tempString, <span class="stringliteral">&quot;yyyyMMddHHmmss&quot;</span>, null);
<a name="l00411"></a>00411 
<a name="l00412"></a>00412                         tempString = list[ind].data[(int)timeMax - 1].d[0].ToString() + GetCheckedString((<span class="keywordtype">int</span>)list[ind].data[startTime].d[1]);
<a name="l00413"></a>00413                         end1 = DateTime.ParseExact(tempString, <span class="stringliteral">&quot;yyyyMMddHHmmss&quot;</span>, null);
<a name="l00414"></a>00414                         res1 = end1 - start1;
<a name="l00415"></a>00415                         <span class="keywordflow">if</span> (res1.Seconds &gt; 1)
<a name="l00416"></a>00416                             period = <a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html#af274964b649f1e453b2ef9a83154ffef">PeriodToDraw</a>.seconds;
<a name="l00417"></a>00417                         <span class="keywordflow">if</span> (res1.Minutes &gt; 2)
<a name="l00418"></a>00418                             period = <a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html#af274964b649f1e453b2ef9a83154ffef">PeriodToDraw</a>.minutes;
<a name="l00419"></a>00419                         <span class="keywordflow">if</span> (res1.Hours &gt; 2)
<a name="l00420"></a>00420                             period = <a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html#af274964b649f1e453b2ef9a83154ffef">PeriodToDraw</a>.hours;
<a name="l00421"></a>00421                         <span class="keywordflow">if</span> (res1.Days &gt; 0 || res1.Hours &gt; 10)
<a name="l00422"></a>00422                             period = <a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html#af274964b649f1e453b2ef9a83154ffef">PeriodToDraw</a>.days;
<a name="l00423"></a>00423                     }
<a name="l00424"></a>00424                 }
<a name="l00425"></a>00425 
<a name="l00426"></a>00426 
<a name="l00427"></a>00427                 <span class="keywordflow">switch</span> (period)
<a name="l00428"></a>00428                 {
<a name="l00429"></a>00429 <span class="preprocessor">                    #region Seconds</span>
<a name="l00430"></a>00430 <span class="preprocessor"></span>                    <span class="keywordflow">case</span> <a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html#af274964b649f1e453b2ef9a83154ffef">PeriodToDraw</a>.seconds:
<a name="l00432"></a>00432                         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = startTime; ((i &lt; timeMax) &amp;&amp; (i &lt; list[ind].data.Count)); i++)
<a name="l00433"></a>00433                         {
<a name="l00434"></a>00434                             tempString = list[ind].data[i].d[1].ToString();
<a name="l00435"></a>00435                             highFrecTime = tempString.Substring(tempString.Length - 2, 2);
<a name="l00436"></a>00436                             lowFrecTime = tempString.Substring(tempString.Length - 4, 2);
<a name="l00437"></a>00437 
<a name="l00438"></a>00438                             <span class="keywordflow">if</span> (lastHighFrecTime != highFrecTime)
<a name="l00439"></a>00439                             {
<a name="l00440"></a>00440                                 <span class="keywordflow">if</span> (i != 0)
<a name="l00441"></a>00441                                     ii = i;
<a name="l00442"></a>00442                                 <span class="keywordflow">else</span>
<a name="l00443"></a>00443                                     <span class="keywordflow">goto</span> skip;
<a name="l00444"></a>00444                                 <span class="keywordflow">while</span> ((<span class="keywordtype">int</span>)list[ind].data[ii].d[1] == (<span class="keywordtype">int</span>)list[ind].data[i].d[1])
<a name="l00445"></a>00445                                 {
<a name="l00446"></a>00446                                     ii--;
<a name="l00447"></a>00447                                     <span class="keywordflow">if</span> (ii &lt; 0)
<a name="l00448"></a>00448                                         <span class="keywordflow">break</span>;
<a name="l00449"></a>00449                                 }
<a name="l00450"></a>00450                             skip:
<a name="l00451"></a>00451                                 <span class="keywordflow">if</span> (ii - lastIndex &gt; pointsPerLable)
<a name="l00452"></a>00452                                 {
<a name="l00453"></a>00453                                     lastHighFrecTime = highFrecTime;
<a name="l00454"></a>00454                                     lastIndex = i;
<a name="l00455"></a>00455                                     TempCoordX = list[ind].viewPort.BarNumberToPixels(i);
<a name="l00458"></a>00458                                     tempString = list[ind].data[ii].d[1].ToString();
<a name="l00459"></a>00459                                     g.DrawLine(style.magorTickPen, TempCoordX, strHeight, TempCoordX, 10);
<a name="l00460"></a>00460                                     g.DrawString(<span class="stringliteral">&quot;:&quot;</span> + highFrecTime.ToString() + <span class="stringliteral">&quot;s&quot;</span>, style.magorTickFont, style.magorFontBrush, TempCoordX + stringWidth / 6, 0);
<a name="l00461"></a>00461                                     <span class="keywordflow">if</span> (lastLowFrecTime != lowFrecTime)
<a name="l00462"></a>00462                                     {
<a name="l00463"></a>00463                                         lastLowFrecTime = lowFrecTime;
<a name="l00464"></a>00464                                         g.DrawLine(style.magorTickPen, TempCoordX, strHeight, TempCoordX, strHeight + 10);
<a name="l00465"></a>00465                                         g.DrawString(<span class="stringliteral">&quot;:&quot;</span> + lowFrecTime.ToString() + <span class="stringliteral">&quot;m&quot;</span>, style.magorTickFont, style.magorFontBrush, TempCoordX + stringWidth / 6, strHeight);
<a name="l00466"></a>00466                                     }
<a name="l00467"></a>00467                                     <span class="keywordflow">if</span> (grid.style.IsVerticalVisible)
<a name="l00468"></a>00468                                         grid.verticalLevelsArray.Add(TempCoordX);
<a name="l00469"></a>00469                                   
<a name="l00470"></a>00470                                 }
<a name="l00471"></a>00471                             }
<a name="l00472"></a>00472                         }
<a name="l00473"></a>00473 
<a name="l00475"></a>00475                         <span class="keywordflow">break</span>;
<a name="l00476"></a>00476 <span class="preprocessor">                #endregion Seconds</span>
<a name="l00477"></a>00477 <span class="preprocessor"></span>                  
<a name="l00478"></a>00478 <span class="preprocessor">                    #region Minutes</span>
<a name="l00479"></a>00479 <span class="preprocessor"></span>                    <span class="keywordflow">case</span> <a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html#af274964b649f1e453b2ef9a83154ffef">PeriodToDraw</a>.minutes:
<a name="l00480"></a>00480                         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = startTime; ((i &lt; timeMax) &amp;&amp; (i &lt; list[ind].data.Count)); i++)
<a name="l00481"></a>00481                         {
<a name="l00482"></a>00482                             tempString = list[ind].data[i].d[1].ToString();
<a name="l00483"></a>00483                             highFrecTime = tempString.Substring(tempString.Length - 4, 2);
<a name="l00484"></a>00484                             <span class="keywordflow">if</span> (tempString.Length &gt; 6)
<a name="l00485"></a>00485                                 lowFrecTime = tempString.Substring(tempString.Length - 6, 2);
<a name="l00486"></a>00486                             <span class="keywordflow">else</span>
<a name="l00487"></a>00487                                 lowFrecTime = tempString.Substring(0, 2);
<a name="l00488"></a>00488 
<a name="l00489"></a>00489                             <span class="keywordflow">if</span> (i - lastIndex &gt; pointsPerLable)
<a name="l00490"></a>00490                             {
<a name="l00491"></a>00491                                 lastIndex = i;
<a name="l00492"></a>00492                                 TempCoordX = list[ind].viewPort.BarNumberToPixels(i);
<a name="l00493"></a>00493                                 g.DrawLine(style.magorTickPen, TempCoordX, strHeight, TempCoordX, 10);
<a name="l00494"></a>00494                                 g.DrawString(<span class="stringliteral">&quot;:&quot;</span> + highFrecTime.ToString() + <span class="stringliteral">&quot;m&quot;</span>, style.magorTickFont, style.magorFontBrush, TempCoordX + stringWidth / 6, 0);
<a name="l00495"></a>00495                                 <span class="keywordflow">if</span> (lastLowFrecTime != lowFrecTime)
<a name="l00496"></a>00496                                 {
<a name="l00497"></a>00497                                     lastLowFrecTime = lowFrecTime;
<a name="l00498"></a>00498                                     g.DrawLine(style.magorTickPen, TempCoordX, strHeight, TempCoordX, strHeight + 10);
<a name="l00499"></a>00499                                     g.DrawString(<span class="stringliteral">&quot;:&quot;</span> + lowFrecTime.ToString() + <span class="stringliteral">&quot;h&quot;</span>, style.magorTickFont, style.magorFontBrush, TempCoordX + stringWidth / 6, strHeight);
<a name="l00500"></a>00500                                 }
<a name="l00501"></a>00501                                 <span class="keywordflow">if</span> (grid.style.IsVerticalVisible)
<a name="l00502"></a>00502                                     grid.verticalLevelsArray.Add(TempCoordX);
<a name="l00503"></a>00503                             }
<a name="l00504"></a>00504                         }
<a name="l00505"></a>00505                         <span class="keywordflow">break</span>;
<a name="l00506"></a>00506 <span class="preprocessor">                    #endregion Minutes</span>
<a name="l00507"></a>00507 <span class="preprocessor"></span>
<a name="l00508"></a>00508 <span class="preprocessor">                    #region Hours</span>
<a name="l00509"></a>00509 <span class="preprocessor"></span>                    <span class="keywordflow">case</span> <a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html#af274964b649f1e453b2ef9a83154ffef">PeriodToDraw</a>.hours:
<a name="l00510"></a>00510                         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = startTime; ((i &lt; timeMax) &amp;&amp; (i &lt; list[ind].data.Count)); i++)
<a name="l00511"></a>00511                         {
<a name="l00512"></a>00512                             tempString = list[ind].data[i].d[0].ToString() + list[ind].data[i].d[1].ToString();
<a name="l00513"></a>00513                             highFrecTime = tempString.Substring(tempString.Length - 6, 2);
<a name="l00514"></a>00514                             lowFrecTime = tempString.Substring(tempString.Length - 8, 2);
<a name="l00515"></a>00515 
<a name="l00516"></a>00516                             <span class="keywordflow">if</span> (lastHighFrecTime != highFrecTime)
<a name="l00517"></a>00517                             {
<a name="l00518"></a>00518                                 lastHighFrecTime = highFrecTime;
<a name="l00519"></a>00519                                 <span class="keywordflow">if</span> (i - lastIndex &gt; pointsPerLable)
<a name="l00520"></a>00520                                 {
<a name="l00521"></a>00521                                     lastIndex = i;
<a name="l00522"></a>00522                                     TempCoordX = list[ind].viewPort.BarNumberToPixels(i);
<a name="l00523"></a>00523                                     g.DrawLine(style.magorTickPen, TempCoordX, strHeight, TempCoordX, 10);
<a name="l00524"></a>00524                                     g.DrawString(<span class="stringliteral">&quot;:&quot;</span> + highFrecTime.ToString() + <span class="stringliteral">&quot;h&quot;</span>, style.magorTickFont, style.magorFontBrush, TempCoordX + stringWidth / 6, 0);
<a name="l00525"></a>00525                                     <span class="keywordflow">if</span> (lastLowFrecTime != lowFrecTime)
<a name="l00526"></a>00526                                     {
<a name="l00527"></a>00527                                         lastLowFrecTime = lowFrecTime;
<a name="l00528"></a>00528                                         g.DrawLine(style.magorTickPen, TempCoordX, strHeight, TempCoordX, strHeight + 10);
<a name="l00529"></a>00529                                         g.DrawString(lowFrecTime.ToString() + <span class="stringliteral">&quot;d&quot;</span>, style.magorTickFont, style.magorFontBrush, TempCoordX + stringWidth / 6, strHeight);
<a name="l00530"></a>00530                                     }
<a name="l00531"></a>00531                                     <span class="keywordflow">if</span> (grid.style.IsVerticalVisible)
<a name="l00532"></a>00532                                         grid.verticalLevelsArray.Add(TempCoordX);
<a name="l00533"></a>00533                                 }
<a name="l00534"></a>00534                             }
<a name="l00535"></a>00535                         }
<a name="l00536"></a>00536                         <span class="keywordflow">break</span>;
<a name="l00537"></a>00537 <span class="preprocessor">                    #endregion Hours</span>
<a name="l00538"></a>00538 <span class="preprocessor"></span>
<a name="l00539"></a>00539 <span class="preprocessor">                    #region Days</span>
<a name="l00540"></a>00540 <span class="preprocessor"></span>                    <span class="keywordflow">case</span> <a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html#af274964b649f1e453b2ef9a83154ffef">PeriodToDraw</a>.days:
<a name="l00541"></a>00541                         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = startTime; ((i &lt; timeMax) &amp;&amp; (i &lt; list[ind].data.Count)); i++)
<a name="l00542"></a>00542                         {
<a name="l00543"></a>00543                             tempString = list[ind].data[i].d[0].ToString() + list[ind].data[i].d[1].ToString();
<a name="l00544"></a>00544                             highFrecTime = tempString.Substring(tempString.Length - 6, 2);
<a name="l00545"></a>00545                             lowFrecTime = tempString.Substring(tempString.Length - 8, 2);
<a name="l00546"></a>00546 
<a name="l00547"></a>00547                             <span class="keywordflow">if</span> (lastHighFrecTime != highFrecTime)
<a name="l00548"></a>00548                             {
<a name="l00549"></a>00549                                 lastHighFrecTime = highFrecTime;
<a name="l00550"></a>00550                                 <span class="keywordflow">if</span> (i - lastIndex &gt; pointsPerLable)
<a name="l00551"></a>00551                                 {
<a name="l00552"></a>00552                                     lastIndex = i;
<a name="l00553"></a>00553                                     TempCoordX = list[ind].viewPort.BarNumberToPixels(i);
<a name="l00554"></a>00554                                     g.DrawLine(style.magorTickPen, TempCoordX, strHeight, TempCoordX, 10);
<a name="l00555"></a>00555                                     g.DrawString(<span class="stringliteral">&quot;:&quot;</span> + highFrecTime.ToString() + <span class="stringliteral">&quot;h&quot;</span>, style.magorTickFont, style.magorFontBrush, TempCoordX + stringWidth / 6, 0);
<a name="l00556"></a>00556                                     <span class="keywordflow">if</span> (lastLowFrecTime != lowFrecTime)
<a name="l00557"></a>00557                                     {
<a name="l00558"></a>00558                                         lastLowFrecTime = lowFrecTime;
<a name="l00559"></a>00559                                         g.DrawLine(style.magorTickPen, TempCoordX, strHeight, TempCoordX, strHeight + 10);
<a name="l00560"></a>00560                                         g.DrawString(lowFrecTime.ToString() + <span class="stringliteral">&quot;d&quot;</span>, style.magorTickFont, style.magorFontBrush, TempCoordX + stringWidth / 6, strHeight);
<a name="l00561"></a>00561                                     }
<a name="l00562"></a>00562                                     <span class="keywordflow">if</span> (grid.style.IsVerticalVisible)
<a name="l00563"></a>00563                                         grid.verticalLevelsArray.Add(TempCoordX);
<a name="l00564"></a>00564                                 }
<a name="l00565"></a>00565                             }
<a name="l00566"></a>00566                         }
<a name="l00567"></a>00567                         <span class="keywordflow">break</span>;
<a name="l00568"></a>00568 <span class="preprocessor">                    #endregion Days</span>
<a name="l00569"></a>00569 <span class="preprocessor"></span>
<a name="l00570"></a>00570                     <span class="keywordflow">case</span> <a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html#af274964b649f1e453b2ef9a83154ffef">PeriodToDraw</a>.chartIsOutSideTheBonds:
<a name="l00571"></a>00571                         <span class="keywordflow">break</span>;
<a name="l00572"></a>00572 
<a name="l00573"></a>00573                     <span class="keywordflow">default</span>:
<a name="l00574"></a>00574                         <span class="keywordflow">break</span>;
<a name="l00575"></a>00575                 }
<a name="l00576"></a>00576 
<a name="l00577"></a>00577 
<a name="l00578"></a>00578 
<a name="l00579"></a>00579                 <span class="keywordflow">if</span> (list[ind].viewPort.VPMaxTime - list[ind].viewPort.VPMinTime &gt; 0)
<a name="l00580"></a>00580                 {
<a name="l00581"></a>00581                     del -= 2;
<a name="l00582"></a>00582                     <span class="keywordflow">if</span> (del &gt; 0)
<a name="l00583"></a>00583                         del = 2;
<a name="l00584"></a>00584                 }
<a name="l00585"></a>00585 
<a name="l00586"></a>00586 <span class="preprocessor">                #endregion NoTimeArray</span>
<a name="l00587"></a>00587 <span class="preprocessor"></span>
<a name="l00588"></a>00588                
<a name="l00589"></a>00589 
<a name="l00590"></a>00590             }
<a name="l00591"></a>00591 
<a name="l00592"></a>00592          }
<a name="l00593"></a><a class="code" href="class_chart_v2_1_1_axis___plot_1_1_bottom_axis_static.html">00593</a>     <span class="keyword">public</span> <span class="keyword">class </span><a class="code" href="class_chart_v2_1_1_axis___plot_1_1_bottom_axis_static.html">BottomAxisStatic</a> : <a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html">Axis</a> 
<a name="l00594"></a>00594     {
<a name="l00595"></a><a class="code" href="class_chart_v2_1_1_axis___plot_1_1_bottom_axis_static.html#a0a6a4d27fb6137c37e5b2e03b1f1783e">00595</a>         <span class="keyword">public</span> <a class="code" href="class_chart_v2_1_1_axis___plot_1_1_bottom_axis_static.html">BottomAxisStatic</a>(Rectangle rect)
<a name="l00596"></a>00596         {
<a name="l00597"></a>00597             cursorLable = <span class="keyword">new</span> <a class="code" href="class_chart_v2_1_1_axis___plot_1_1_cursor_info_lable.html">CursorInfoLable</a>();
<a name="l00598"></a>00598             style = <span class="keyword">new</span> Styles.AxisStyle();
<a name="l00599"></a>00599             style.magorTickFont = Skilful.Sample.AxisStyleBottom;
<a name="l00600"></a>00600             cursorLable.font = Skilful.Sample.CursorLable_Bottom;   <span class="comment">//style.magorTickFont;</span>
<a name="l00601"></a>00601             refreshDrawingSurfaces(rect);
<a name="l00602"></a>00602         }
<a name="l00603"></a><a class="code" href="class_chart_v2_1_1_axis___plot_1_1_bottom_axis_static.html#a09e1ccdc2629aaae2012eebacf9c5e57">00603</a>         <span class="keyword">public</span> <span class="keyword">override</span> <span class="keywordtype">void</span> refreshDrawingSurfaces(Rectangle gridSplitterRectangle)
<a name="l00604"></a>00604         {
<a name="l00605"></a>00605             <span class="keywordflow">if</span> (gridSplitterRectangle.Width &gt; 0 &amp;&amp; gridSplitterRectangle.Height &gt; 0)
<a name="l00606"></a>00606             {
<a name="l00607"></a>00607                 bmp = <span class="keyword">new</span> Bitmap(gridSplitterRectangle.Width, gridSplitterRectangle.Height);
<a name="l00608"></a>00608                 g = Graphics.FromImage(bmp);
<a name="l00609"></a>00609 
<a name="l00610"></a>00610             }
<a name="l00611"></a>00611             <span class="keywordflow">else</span>
<a name="l00612"></a>00612             {
<a name="l00613"></a>00613                 bmp = <span class="keyword">new</span> Bitmap(10, 10);
<a name="l00614"></a>00614                 g = Graphics.FromImage(bmp);
<a name="l00615"></a>00615             }
<a name="l00616"></a>00616         }
<a name="l00617"></a>00617       
<a name="l00618"></a><a class="code" href="class_chart_v2_1_1_axis___plot_1_1_bottom_axis_static.html#ab555fc01a5dffa958b54250ee08245d3">00618</a>         <span class="keyword">public</span> <span class="keyword">override</span> <span class="keywordtype">void</span> Draw(<span class="keywordtype">int</span>? seriesIndex)
<a name="l00619"></a>00619          {
<a name="l00620"></a>00620                 <span class="keywordflow">if</span> (list == null)
<a name="l00621"></a>00621                 <span class="keywordflow">return</span>;
<a name="l00622"></a>00622            <span class="comment">//  public void DrawXaxis(DataSeries ds)</span>
<a name="l00623"></a>00623 
<a name="l00624"></a>00624                 <span class="keywordflow">if</span> (list == null)
<a name="l00625"></a>00625                     <span class="keywordflow">return</span>;
<a name="l00626"></a>00626                 <span class="keywordflow">if</span> (list.Count == 0)
<a name="l00627"></a>00627                 {
<a name="l00628"></a>00628 
<a name="l00629"></a>00629                     g.DrawString(<span class="stringliteral">&quot;No series Selected.&quot;</span>, SystemFonts.DialogFont, Brushes.Beige, Point.Empty);
<a name="l00630"></a>00630                 }
<a name="l00631"></a>00631                 <span class="keywordflow">else</span>
<a name="l00632"></a>00632                 {
<a name="l00633"></a>00633                     ind = (int)seriesIndex;
<a name="l00634"></a>00634                 }
<a name="l00635"></a>00635 
<a name="l00636"></a>00636 
<a name="l00637"></a>00637 
<a name="l00638"></a>00638                 <span class="comment">//just to check numbers height</span>
<a name="l00639"></a>00639                 g.Clear(style.backColor);
<a name="l00640"></a>00640 
<a name="l00641"></a>00641                 <span class="keywordflow">if</span> (ShouldDrawBorder)
<a name="l00642"></a>00642                     g.DrawRectangle(style.borderPen, 0, 0, bmp.Width - 1, bmp.Height - 1);
<a name="l00643"></a>00643 
<a name="l00644"></a>00644                 lableSize.Width = g.MeasureString(list[ind].data[0].d[0].ToString() + <span class="stringliteral">&quot; &quot;</span> + list[ind].data[0].d[1].ToString(), style.magorTickFont).Width;
<a name="l00645"></a>00645 
<a name="l00646"></a>00646                 howManyCanFit = bmp.Width / lableSize.Width;
<a name="l00647"></a>00647 
<a name="l00648"></a>00648                 grid.verticalLevelsArray.Clear();
<a name="l00649"></a>00649 
<a name="l00650"></a>00650 
<a name="l00651"></a>00651                 timeMin = list[ind].viewPort.VPMinTime;
<a name="l00652"></a>00652                 timeMax = list[ind].viewPort.VPMaxTime;
<a name="l00653"></a>00653                
<a name="l00654"></a>00654 
<a name="l00655"></a>00655                 <span class="keywordflow">if</span> (timeMin &lt; 0)
<a name="l00656"></a>00656                     startTime = 0;
<a name="l00657"></a>00657                 <span class="keywordflow">else</span>
<a name="l00658"></a>00658                     startTime = (int)timeMin;
<a name="l00659"></a>00659 
<a name="l00660"></a>00660 
<a name="l00661"></a>00661                 <span class="keywordflow">if</span> (timeMax &gt; list[ind].data.Count)
<a name="l00662"></a>00662                 {
<a name="l00663"></a>00663                     <span class="keywordflow">if</span> (startTime &lt; list[ind].data.Count &amp;&amp; list[ind].data.Count &gt; 0)
<a name="l00664"></a>00664                     {
<a name="l00665"></a>00665 
<a name="l00666"></a>00666 
<a name="l00667"></a>00667                         tempString = list[ind].data[startTime].d[0].ToString() + GetCheckedString((<span class="keywordtype">int</span>)list[ind].data[startTime].d[1]);
<a name="l00668"></a>00668                         start1 = DateTime.ParseExact(tempString, <span class="stringliteral">&quot;yyyyMMddHHmmss&quot;</span>, null);
<a name="l00669"></a>00669                         <span class="comment">/*tempString = list[ind].data[list[ind].data.Count - 1].d[0].ToString() + GetCheckedString((int)list[ind].data[startTime].d[1]);</span>
<a name="l00670"></a>00670 <span class="comment">                        end1 = DateTime.ParseExact(tempString, &quot;yyyyMMddHHmmss&quot;, null);*/</span>
<a name="l00671"></a>00671                         end1 = list[ind].barIndex2Date((<span class="keywordtype">int</span>)timeMax);
<a name="l00672"></a>00672                         res1 = end1 - start1;
<a name="l00673"></a>00673                         <span class="keywordflow">if</span> (res1.Seconds &gt; 1)
<a name="l00674"></a>00674                             period = <a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html#af274964b649f1e453b2ef9a83154ffef">PeriodToDraw</a>.seconds;
<a name="l00675"></a>00675                         <span class="keywordflow">if</span> (res1.Minutes &gt; 2)
<a name="l00676"></a>00676                             period = <a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html#af274964b649f1e453b2ef9a83154ffef">PeriodToDraw</a>.minutes;
<a name="l00677"></a>00677                         <span class="keywordflow">if</span> (res1.Hours &gt; 2)
<a name="l00678"></a>00678                             period = <a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html#af274964b649f1e453b2ef9a83154ffef">PeriodToDraw</a>.hours;
<a name="l00679"></a>00679                         <span class="keywordflow">if</span> (res1.Days &gt; 2)
<a name="l00680"></a>00680                             period = <a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html#af274964b649f1e453b2ef9a83154ffef">PeriodToDraw</a>.days;
<a name="l00681"></a>00681                         <span class="keywordflow">if</span> (res1.Days &gt; 10)
<a name="l00682"></a>00682                             period = <a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html#af274964b649f1e453b2ef9a83154ffef">PeriodToDraw</a>.weeks;
<a name="l00683"></a>00683                         <span class="keywordflow">if</span> (res1.Days &gt; 30)
<a name="l00684"></a>00684                             period = <a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html#af274964b649f1e453b2ef9a83154ffef">PeriodToDraw</a>.months;
<a name="l00685"></a>00685                         <span class="keywordflow">if</span> (res1.Days &gt; 365)
<a name="l00686"></a>00686                             period = <a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html#af274964b649f1e453b2ef9a83154ffef">PeriodToDraw</a>.years;
<a name="l00687"></a>00687                     }
<a name="l00688"></a>00688 
<a name="l00689"></a>00689                 }
<a name="l00690"></a>00690                 <span class="keywordflow">if</span> (timeMax &lt;= list[ind].data.Count)
<a name="l00691"></a>00691                 {
<a name="l00692"></a>00692                     <span class="keywordflow">if</span> (startTime &lt; list[ind].data.Count &amp;&amp; ((<span class="keywordtype">int</span>)timeMax - 1) &gt; 0)
<a name="l00693"></a>00693                     {
<a name="l00694"></a>00694 
<a name="l00695"></a>00695 
<a name="l00696"></a>00696 
<a name="l00697"></a>00697                         tempString = list[ind].data[startTime].d[0].ToString() + GetCheckedString((<span class="keywordtype">int</span>)list[ind].data[startTime].d[1]);
<a name="l00698"></a>00698                         start1 = DateTime.ParseExact(tempString, <span class="stringliteral">&quot;yyyyMMddHHmmss&quot;</span>, null);
<a name="l00699"></a>00699 
<a name="l00700"></a>00700                         tempString = list[ind].data[(int)timeMax - 1].d[0].ToString() + GetCheckedString((<span class="keywordtype">int</span>)list[ind].data[(<span class="keywordtype">int</span>)timeMax - 1].d[1]);
<a name="l00701"></a>00701                         end1 = DateTime.ParseExact(tempString, <span class="stringliteral">&quot;yyyyMMddHHmmss&quot;</span>, null);
<a name="l00702"></a>00702                         TimeSpan span = end1.Subtract(start1);
<a name="l00703"></a>00703                         res1 = end1 - start1;
<a name="l00704"></a>00704                         <span class="keywordflow">if</span> (res1.Seconds &gt; 1)
<a name="l00705"></a>00705                             period = <a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html#af274964b649f1e453b2ef9a83154ffef">PeriodToDraw</a>.seconds;
<a name="l00706"></a>00706                         <span class="keywordflow">if</span> (res1.Minutes &gt; 2)
<a name="l00707"></a>00707                             period = <a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html#af274964b649f1e453b2ef9a83154ffef">PeriodToDraw</a>.minutes;
<a name="l00708"></a>00708                         <span class="keywordflow">if</span> (res1.Hours &gt; 2)
<a name="l00709"></a>00709                             period = <a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html#af274964b649f1e453b2ef9a83154ffef">PeriodToDraw</a>.hours;
<a name="l00710"></a>00710                         <span class="keywordflow">if</span> (res1.Days &gt; 2)
<a name="l00711"></a>00711                             period = <a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html#af274964b649f1e453b2ef9a83154ffef">PeriodToDraw</a>.days;
<a name="l00712"></a>00712                         <span class="keywordflow">if</span> (res1.Days &gt; 10)
<a name="l00713"></a>00713                             period = <a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html#af274964b649f1e453b2ef9a83154ffef">PeriodToDraw</a>.weeks;
<a name="l00714"></a>00714                         <span class="keywordflow">if</span> (res1.Days &gt; 30)
<a name="l00715"></a>00715                             period = <a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html#af274964b649f1e453b2ef9a83154ffef">PeriodToDraw</a>.months;
<a name="l00716"></a>00716                         <span class="keywordflow">if</span> (res1.Days &gt; 365)
<a name="l00717"></a>00717                             period = <a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html#af274964b649f1e453b2ef9a83154ffef">PeriodToDraw</a>.years;
<a name="l00718"></a>00718                     }
<a name="l00719"></a>00719                 }
<a name="l00720"></a>00720 
<a name="l00721"></a>00721 
<a name="l00722"></a>00722 
<a name="l00723"></a>00723 
<a name="l00724"></a>00724                 <span class="keywordtype">int</span> newMonth = 0;
<a name="l00725"></a>00725                 <span class="keywordtype">int</span> newDay = 0;
<a name="l00726"></a>00726                         <span class="keywordflow">for</span> (<span class="keywordtype">float</span> i = 0; i &lt; howManyCanFit + 10; i++)
<a name="l00727"></a>00727                         {
<a name="l00728"></a>00728                             BarNumber = (int)list[ind].viewPort.PixelToBarNumber(i * lableSize.Width);
<a name="l00729"></a>00729                             <span class="keywordflow">if</span> (BarNumber &lt; list[ind].data.Count &amp;&amp; BarNumber &gt; 0)
<a name="l00730"></a>00730                             {
<a name="l00731"></a>00731                                 tempString = list[ind].data[BarNumber].d[0].ToString() + GetCheckedString((<span class="keywordtype">int</span>)list[ind].data[BarNumber].d[1]);
<a name="l00732"></a>00732                                 start1 = DateTime.ParseExact(tempString, <span class="stringliteral">&quot;yyyyMMddHHmmss&quot;</span>, null);
<a name="l00733"></a>00733                                 g.DrawLine(style.magorTickPen, i * lableSize.Width, 0, i * lableSize.Width, 5);
<a name="l00734"></a>00734                             }
<a name="l00735"></a>00735                             <span class="keywordflow">else</span>
<a name="l00736"></a>00736                             {
<a name="l00737"></a>00737                                 start1 = list[ind].barIndex2Date(BarNumber);
<a name="l00738"></a>00738                                 g.DrawLine(style.magorTickPen, i * lableSize.Width, 0, i * lableSize.Width, 5);
<a name="l00739"></a>00739                             
<a name="l00740"></a>00740                             }
<a name="l00741"></a>00741                                 <span class="keywordflow">switch</span> (period)
<a name="l00742"></a>00742                                 {
<a name="l00743"></a>00743                                     <span class="keywordflow">case</span> <a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html#af274964b649f1e453b2ef9a83154ffef">PeriodToDraw</a>.minutes:
<a name="l00744"></a>00744                                         dateTimeFormat = <span class="stringliteral">&quot;mm:ss&quot;</span>;
<a name="l00745"></a>00745                                        
<a name="l00746"></a>00746                                         g.DrawString(start1.ToString(<span class="stringliteral">&quot;mm:ss&quot;</span>), style.magorTickFont, style.magorFontBrush, i * lableSize.Width, 5);
<a name="l00747"></a>00747                                         <span class="keywordflow">if</span> (newDay &lt; start1.Day)
<a name="l00748"></a>00748                                         {
<a name="l00749"></a>00749                                             newDay = start1.Day;
<a name="l00750"></a>00750                                             g.DrawString(start1.ToString(<span class="stringliteral">&quot;HH&quot;</span>) + <span class="stringliteral">&quot;h&quot;</span>, style.magorTickFont, style.magorFontBrush, i * lableSize.Width, 15);
<a name="l00751"></a>00751                                         }
<a name="l00752"></a>00752                                         <span class="keywordflow">break</span>;
<a name="l00753"></a>00753 
<a name="l00754"></a>00754                                     <span class="keywordflow">case</span> <a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html#af274964b649f1e453b2ef9a83154ffef">PeriodToDraw</a>.hours:
<a name="l00755"></a>00755 
<a name="l00756"></a>00756                                         <span class="comment">//if (newDay &lt; start1.Day)</span>
<a name="l00757"></a>00757                                         <span class="keywordflow">if</span> (i == 0)
<a name="l00758"></a>00758                                         {
<a name="l00759"></a>00759                                             dateTimeFormat = <span class="stringliteral">&quot;HH:mm&quot;</span>;
<a name="l00760"></a>00760                                             newDay = start1.Day;
<a name="l00761"></a>00761                                             g.DrawString(start1.ToString(<span class="stringliteral">&quot;dd MMM yyyy&quot;</span>), style.magorTickFont, style.magorFontBrush, i * lableSize.Width, 5);
<a name="l00762"></a>00762                                         }
<a name="l00763"></a>00763                                         <span class="keywordflow">else</span> g.DrawString(start1.ToString(<span class="stringliteral">&quot;HH:mm&quot;</span>), style.magorTickFont, style.magorFontBrush, i * lableSize.Width, 5);
<a name="l00764"></a>00764                                         <span class="keywordflow">break</span>;
<a name="l00765"></a>00765                                     <span class="keywordflow">case</span> <a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html#af274964b649f1e453b2ef9a83154ffef">PeriodToDraw</a>.days:
<a name="l00766"></a>00766                                         <span class="comment">//if (newMonth &lt; start1.Month)</span>
<a name="l00767"></a>00767                                         <span class="keywordflow">if</span> (i == 0)
<a name="l00768"></a>00768                                         {
<a name="l00769"></a>00769                                             newMonth = start1.Month;
<a name="l00770"></a>00770                                             g.DrawString(start1.ToString(<span class="stringliteral">&quot;dd MMM yyyy&quot;</span>), style.magorTickFont, style.magorFontBrush, i * lableSize.Width, 5);
<a name="l00771"></a>00771                                         }
<a name="l00772"></a>00772                                         <span class="keywordflow">else</span>
<a name="l00773"></a>00773                                         {
<a name="l00774"></a>00774                                             dateTimeFormat = <span class="stringliteral">&quot;dd MMM HH:mm&quot;</span>;
<a name="l00775"></a>00775                                             g.DrawString(start1.ToString(<span class="stringliteral">&quot;dd MMM HH:mm&quot;</span>), style.magorTickFont, style.magorFontBrush, i * lableSize.Width, 5);
<a name="l00776"></a>00776 
<a name="l00777"></a>00777                                         }
<a name="l00778"></a>00778                                         <span class="keywordflow">break</span>;
<a name="l00779"></a>00779                                     <span class="keywordflow">case</span> <a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html#af274964b649f1e453b2ef9a83154ffef">PeriodToDraw</a>.weeks:
<a name="l00780"></a>00780 
<a name="l00781"></a>00781                                         <span class="keywordflow">if</span> (i == 0)
<a name="l00782"></a>00782                                         <span class="comment">// if(newMonth &lt; start1.Month)</span>
<a name="l00783"></a>00783                                         {
<a name="l00784"></a>00784                                             newMonth = start1.Month;
<a name="l00785"></a>00785                                             g.DrawString(start1.ToString(<span class="stringliteral">&quot;dd MMM yyyy&quot;</span>), style.magorTickFont, style.magorFontBrush, i * lableSize.Width, 5);
<a name="l00786"></a>00786                                         }
<a name="l00787"></a>00787                                         <span class="keywordflow">else</span> g.DrawString(start1.ToString(<span class="stringliteral">&quot;dd MMM HH&quot;</span>) + <span class="stringliteral">&quot;h&quot;</span>, style.magorTickFont, style.magorFontBrush, i * lableSize.Width, 5);
<a name="l00788"></a>00788                                         <span class="keywordflow">break</span>;
<a name="l00789"></a>00789                                     <span class="keywordflow">case</span> <a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html#af274964b649f1e453b2ef9a83154ffef">PeriodToDraw</a>.months:
<a name="l00790"></a>00790 
<a name="l00791"></a>00791                                         <span class="comment">//if (newMonth &lt; start1.Month)</span>
<a name="l00792"></a>00792                                         <span class="keywordflow">if</span> (i == 0)
<a name="l00793"></a>00793                                         {
<a name="l00794"></a>00794                                             newMonth = start1.Month;
<a name="l00795"></a>00795                                             g.DrawString(start1.ToString(<span class="stringliteral">&quot;dd MMM yyyy&quot;</span>), style.magorTickFont, style.magorFontBrush, i * lableSize.Width, 5);
<a name="l00796"></a>00796                                         }
<a name="l00797"></a>00797                                         <span class="keywordflow">else</span> g.DrawString(start1.ToString(<span class="stringliteral">&quot;dd MMM HH&quot;</span>) + <span class="stringliteral">&quot;h&quot;</span>, style.magorTickFont, style.magorFontBrush, i * lableSize.Width, 5);
<a name="l00798"></a>00798                                         <span class="keywordflow">break</span>;
<a name="l00799"></a>00799                                     <span class="keywordflow">case</span> <a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html#af274964b649f1e453b2ef9a83154ffef">PeriodToDraw</a>.years:
<a name="l00800"></a>00800                                         g.DrawString(start1.ToString(<span class="stringliteral">&quot;yyyy MMM&quot;</span>), style.magorTickFont, style.magorFontBrush, i * lableSize.Width, 5);
<a name="l00801"></a>00801                                         <span class="keywordflow">break</span>;
<a name="l00802"></a>00802 
<a name="l00803"></a>00803                                 }
<a name="l00804"></a>00804 
<a name="l00805"></a>00805                                 <span class="keywordflow">if</span> (grid.style.IsVerticalVisible)
<a name="l00806"></a>00806                                     grid.verticalLevelsArray.Add(i * lableSize.Width);
<a name="l00807"></a>00807                             
<a name="l00808"></a>00808                             
<a name="l00809"></a>00809                         }
<a name="l00810"></a>00810 
<a name="l00811"></a>00811 
<a name="l00812"></a>00812 
<a name="l00813"></a>00813 
<a name="l00814"></a>00814                         <span class="keywordflow">if</span> (cursorLable.IsVisible &amp;&amp; cursorLable != null)
<a name="l00815"></a>00815                         {
<a name="l00816"></a>00816                             barIndex = (int)cursorLable.Value;
<a name="l00817"></a>00817                             <span class="comment">/*if (barIndex &gt;= list[ind].data.Count)</span>
<a name="l00818"></a>00818 <span class="comment">                                barIndex = list[ind].data.Count - 1;*/</span>
<a name="l00819"></a>00819                             <span class="comment">//if (barIndex &lt; 0)</span>
<a name="l00820"></a>00820                             <span class="comment">//    barIndex = 0;</span>
<a name="l00821"></a>00821                             cursorLable.rect.Size = g.MeasureString(list[ind].barIndex2Date(barIndex).ToString(<span class="stringliteral">&quot;HH:mm&quot;</span>), cursorLable.font);
<a name="l00822"></a>00822                             cursorLable.rect.Offset(-cursorLable.rect.Width / 2, 0);
<a name="l00823"></a>00823                             cursorLable.rect.Y = bmp.Height - 10 - cursorLable.rect.Height;
<a name="l00824"></a>00824                             g.FillRectangle(cursorLable.backBrush, cursorLable.rect.X, cursorLable.rect.Y, cursorLable.rect.Width, cursorLable.rect.Height);
<a name="l00825"></a>00825                             <span class="keywordflow">if</span> (cursorLable.borderPen != null)
<a name="l00826"></a>00826                                 g.DrawRectangle(cursorLable.borderPen, cursorLable.rect.X, cursorLable.rect.Y, cursorLable.rect.Width, cursorLable.rect.Height);
<a name="l00827"></a>00827                             g.DrawString(list[ind].barIndex2Date(barIndex).ToString(<span class="stringliteral">&quot;HH:mm&quot;</span>), cursorLable.font, cursorLable.fontBrush, cursorLable.rect.Location);
<a name="l00828"></a>00828 
<a name="l00829"></a>00829                         }
<a name="l00830"></a>00830 
<a name="l00831"></a>00831         }
<a name="l00832"></a>00832             
<a name="l00833"></a>00833     }
<a name="l00834"></a>00834 
<a name="l00835"></a>00835   
<a name="l00836"></a><a class="code" href="class_chart_v2_1_1_axis___plot_1_1_left_axis_dinamic.html">00836</a>     <span class="keyword">public</span> <span class="keyword">class </span><a class="code" href="class_chart_v2_1_1_axis___plot_1_1_left_axis_dinamic.html">LeftAxisDinamic</a> : <a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html">Axis</a>
<a name="l00837"></a>00837     {
<a name="l00838"></a>00838 
<a name="l00839"></a><a class="code" href="class_chart_v2_1_1_axis___plot_1_1_left_axis_dinamic.html#ae4360e12193de4971c746f4a21b9164e">00839</a>         <span class="keyword">public</span> <a class="code" href="class_chart_v2_1_1_axis___plot_1_1_left_axis_dinamic.html">LeftAxisDinamic</a>(Rectangle rect)
<a name="l00840"></a>00840         {
<a name="l00841"></a>00841             cursorLable = <span class="keyword">new</span> <a class="code" href="class_chart_v2_1_1_axis___plot_1_1_cursor_info_lable.html">CursorInfoLable</a>();
<a name="l00842"></a>00842             style = <span class="keyword">new</span> Styles.AxisStyle();
<a name="l00843"></a>00843             style.magorTickFont = Skilful.Sample.AxisStyleLeft;
<a name="l00844"></a>00844             cursorLable.font = Skilful.Sample.CursorLable_Left; <span class="comment">// style.magorTickFont;</span>
<a name="l00845"></a>00845             refreshDrawingSurfaces(rect);
<a name="l00846"></a>00846 
<a name="l00847"></a>00847         }
<a name="l00848"></a>00848 
<a name="l00849"></a><a class="code" href="class_chart_v2_1_1_axis___plot_1_1_left_axis_dinamic.html#a85a6cb7b6665b85d390ba53c535d1d2d">00849</a>         <span class="keyword">public</span> <span class="keyword">override</span> <span class="keywordtype">void</span> refreshDrawingSurfaces(Rectangle gridSplitterRectangle)
<a name="l00850"></a>00850         {
<a name="l00851"></a>00851             <span class="keywordflow">if</span> (gridSplitterRectangle.Width &gt; 0 &amp;&amp; gridSplitterRectangle.Height &gt; 0)
<a name="l00852"></a>00852             {
<a name="l00853"></a>00853                 bmp = <span class="keyword">new</span> Bitmap(gridSplitterRectangle.Width, gridSplitterRectangle.Height);
<a name="l00854"></a>00854                 g = Graphics.FromImage(bmp);
<a name="l00855"></a>00855 
<a name="l00856"></a>00856             }
<a name="l00857"></a>00857             <span class="keywordflow">else</span>
<a name="l00858"></a>00858             {
<a name="l00859"></a>00859                 bmp = <span class="keyword">new</span> Bitmap(10, 10);
<a name="l00860"></a>00860                 g = Graphics.FromImage(bmp);
<a name="l00861"></a>00861             }
<a name="l00862"></a>00862         }
<a name="l00863"></a>00863 
<a name="l00864"></a><a class="code" href="class_chart_v2_1_1_axis___plot_1_1_left_axis_dinamic.html#a0c8145cf49feec136978e5e53e4fe4c8">00864</a>         <span class="keyword">public</span> <span class="keyword">override</span> <span class="keywordtype">void</span> Draw(<span class="keywordtype">int</span>? seriesIndex)
<a name="l00865"></a>00865         {
<a name="l00866"></a>00866             <span class="keywordflow">if</span> (list == null)
<a name="l00867"></a>00867                 <span class="keywordflow">return</span>;
<a name="l00868"></a>00868             <span class="keywordflow">if</span> (list.Count == 0)
<a name="l00869"></a>00869             {
<a name="l00870"></a>00870 
<a name="l00871"></a>00871                 g.DrawString(<span class="stringliteral">&quot;No series Selected.&quot;</span>, SystemFonts.DialogFont, Brushes.Beige, Point.Empty);
<a name="l00872"></a>00872             }
<a name="l00873"></a>00873             <span class="keywordflow">else</span>
<a name="l00874"></a>00874             {
<a name="l00875"></a>00875                 ind = (int)seriesIndex;
<a name="l00876"></a>00876             }
<a name="l00877"></a>00877 
<a name="l00878"></a>00878             price_format = list[ind].legend.price_format;
<a name="l00879"></a>00879 
<a name="l00880"></a>00880             <span class="comment">//just to check numbers height</span>
<a name="l00881"></a>00881             g.Clear(style.backColor);
<a name="l00882"></a>00882 
<a name="l00883"></a>00883             <span class="keywordflow">if</span> (ShouldDrawBorder)
<a name="l00884"></a>00884                 g.DrawRectangle(style.borderPen, 0, 0, bmp.Width - 1, bmp.Height - 1);
<a name="l00885"></a>00885 
<a name="l00886"></a>00886             
<a name="l00887"></a>00887             s = list[ind].viewPort.VPMaxPrice;
<a name="l00888"></a>00888             <span class="keywordflow">if</span>(list[ind].legend.log)
<a name="l00889"></a>00889                 s = (float)Math.Pow(10, s);
<a name="l00890"></a>00890             
<a name="l00891"></a>00891             lableSize = g.MeasureString(s.ToString(price_format), style.magorTickFont);
<a name="l00892"></a>00892 
<a name="l00893"></a>00893             howManyCanFit = bmp.Height / lableSize.Height;
<a name="l00894"></a>00894             <span class="keywordflow">if</span> (howManyCanFit &gt; 10) howManyCanFit = 10;
<a name="l00895"></a>00895 
<a name="l00896"></a>00896 
<a name="l00897"></a>00897             <span class="keywordtype">float</span> diff = (list[ind].viewPort.VPMaxPrice - list[ind].viewPort.VPMinPrice);
<a name="l00898"></a>00898 
<a name="l00899"></a>00899             <span class="keywordtype">float</span> skolkoLableNaPrice = diff / howManyCanFit;
<a name="l00900"></a>00900 
<a name="l00901"></a>00901             <span class="keywordtype">int</span> pressicion = GetPrecisionOf(skolkoLableNaPrice, <span class="keyword">true</span>);
<a name="l00902"></a>00902             <span class="keywordflow">if</span> (pressicion &lt; 0)
<a name="l00903"></a>00903                 pressicion++;
<a name="l00904"></a>00904             <span class="keywordflow">if</span> (skolkoLableNaPrice &lt; 5 * Math.Pow(10, pressicion - 1))
<a name="l00905"></a>00905             {
<a name="l00906"></a>00906                 skolkoLableNaPrice = (float)Math.Pow(10, pressicion - 1);
<a name="l00907"></a>00907             }
<a name="l00908"></a>00908             <span class="keywordflow">else</span>
<a name="l00909"></a>00909             {
<a name="l00910"></a>00910                 skolkoLableNaPrice = 5 * (float)Math.Pow(10, pressicion - 1);
<a name="l00911"></a>00911 
<a name="l00912"></a>00912             }
<a name="l00913"></a>00913 
<a name="l00914"></a>00914             <span class="comment">// еще раз проверяю чтобы небыло случайных ошибок в округлении этого флоат. а то часто бывает вместо 0.05. пишет . 0.0499997</span>
<a name="l00915"></a>00915             <span class="keywordflow">if</span> (skolkoLableNaPrice &lt; 1)
<a name="l00916"></a>00916             {
<a name="l00917"></a>00917                 <span class="keywordflow">if</span> (pressicion &lt; 0)
<a name="l00918"></a>00918                     skolkoLableNaPrice = (float)Math.Round(skolkoLableNaPrice, 1 - pressicion);
<a name="l00919"></a>00919             }
<a name="l00920"></a>00920 
<a name="l00921"></a>00921             <span class="comment">//увеличиваю делитель если слишком плотно итут лейблы</span>
<a name="l00922"></a>00922             <span class="keywordflow">if</span> ((diff / skolkoLableNaPrice) &gt; howManyCanFit)
<a name="l00923"></a>00923             {
<a name="l00924"></a>00924                 tempString = skolkoLableNaPrice.ToString();
<a name="l00925"></a>00925                 <span class="keywordflow">if</span> (tempString.Contains(<span class="stringliteral">&quot;5&quot;</span>))
<a name="l00926"></a>00926                     skolkoLableNaPrice *= 2;
<a name="l00927"></a>00927                 <span class="keywordflow">if</span> (tempString.Contains(<span class="stringliteral">&quot;1&quot;</span>))
<a name="l00928"></a>00928                     skolkoLableNaPrice *= 5;
<a name="l00929"></a>00929                 <span class="comment">// еще раз проверяю чтобы небыло случайных ошибок в округлении этого флоат. а то часто бывает вместо 0.05. пишет . 0.0499997</span>
<a name="l00930"></a>00930                 <span class="keywordflow">if</span> (skolkoLableNaPrice &lt; 1)
<a name="l00931"></a>00931                 {
<a name="l00932"></a>00932                     <span class="keywordflow">if</span> (pressicion &lt; 0)
<a name="l00933"></a>00933                         skolkoLableNaPrice = (float)Math.Round(skolkoLableNaPrice, 1 - pressicion);
<a name="l00934"></a>00934                 }
<a name="l00935"></a>00935             }
<a name="l00936"></a>00936 
<a name="l00937"></a>00937 
<a name="l00938"></a>00938             start = list[ind].viewPort.VPMinPrice - list[ind].viewPort.VPMinPrice % skolkoLableNaPrice;
<a name="l00939"></a>00939             finish = list[ind].viewPort.VPMaxPrice + skolkoLableNaPrice;
<a name="l00940"></a>00940             <span class="comment">//сокращение вычислений (выдрал из цикла)</span>
<a name="l00941"></a>00941             pressicion = 1 - pressicion;
<a name="l00942"></a>00942             <span class="comment">//проверка на необходимость округления. Для больших цифр тут могла возникнуть ошибка из-за отрицательного значения</span>
<a name="l00943"></a>00943             <span class="keywordflow">if</span> (pressicion &lt; 0)
<a name="l00944"></a>00944                 pressicion = 0;
<a name="l00945"></a>00945             <span class="keywordflow">if</span> (grid.style.IsHorizontalVisible)
<a name="l00946"></a>00946                 grid.horizontalLevelsArray.Clear();
<a name="l00947"></a>00947 
<a name="l00948"></a>00948            
<a name="l00949"></a>00949 
<a name="l00950"></a>00950      
<a name="l00951"></a>00951 
<a name="l00952"></a>00952             <span class="keywordflow">for</span> (<span class="keywordtype">float</span> i = start; i &lt;= finish; i = (float)Math.Round(i + skolkoLableNaPrice, pressicion))
<a name="l00953"></a>00953             {
<a name="l00954"></a>00954 
<a name="l00955"></a>00955 
<a name="l00956"></a>00956                 <span class="keywordflow">for</span> (<span class="keywordtype">float</span> ii = skolkoLableNaPrice / 5; ii &lt;= skolkoLableNaPrice; ii += skolkoLableNaPrice / 5)
<a name="l00957"></a>00957                 {
<a name="l00958"></a>00958                     tempCoord = list[ind].viewPort.PriceToPixels(ii + i);
<a name="l00959"></a>00959                     g.DrawLine(style.minorTickPen, bmp.Width - 5, tempCoord, bmp.Width, tempCoord);
<a name="l00960"></a>00960                 }
<a name="l00961"></a>00961 
<a name="l00962"></a>00962 
<a name="l00963"></a>00963                 tempCoord = list[ind].viewPort.PriceToPixels(i);
<a name="l00964"></a>00964                 g.DrawLine(style.magorTickPen, bmp.Width - 10, tempCoord, bmp.Width, tempCoord);
<a name="l00965"></a>00965                 
<a name="l00966"></a>00966                 s = list[ind].legend.log ? (float)Math.Pow(10, i) : i;
<a name="l00967"></a>00967                 
<a name="l00968"></a>00968                 g.DrawString(s.ToString(price_format), style.magorTickFont, style.magorFontBrush, bmp.Width - lableSize.Width-10, tempCoord - lableSize.Height / 2);
<a name="l00969"></a>00969 
<a name="l00970"></a>00970                 <span class="keywordflow">if</span> (grid.style.IsHorizontalVisible)
<a name="l00971"></a>00971                     grid.horizontalLevelsArray.Add(tempCoord);
<a name="l00972"></a>00972 
<a name="l00973"></a>00973             }
<a name="l00974"></a>00974             <span class="keywordflow">if</span> (cursorLable.IsVisible &amp;&amp; cursorLable != null)
<a name="l00975"></a>00975             {
<a name="l00976"></a>00976 
<a name="l00977"></a>00977                 cursorLable.rect.Size = g.MeasureString(cursorLable.Value.ToString(price_format), cursorLable.font);
<a name="l00978"></a>00978                 cursorLable.rect.Offset(0, -cursorLable.rect.Height / 2);
<a name="l00979"></a>00979                 cursorLable.rect.X = bmp.Width -10 - cursorLable.rect.Width;
<a name="l00980"></a>00980                 g.FillRectangle(cursorLable.backBrush, cursorLable.rect.X,cursorLable.rect.Y,cursorLable.rect.Width,cursorLable.rect.Height);
<a name="l00981"></a>00981                 <span class="keywordflow">if</span> (cursorLable.borderPen != null)
<a name="l00982"></a>00982                     g.DrawRectangle(cursorLable.borderPen, cursorLable.rect.X, cursorLable.rect.Y, cursorLable.rect.Width, cursorLable.rect.Height);
<a name="l00983"></a>00983                 g.DrawString(cursorLable.Value.ToString(price_format), cursorLable.font, cursorLable.fontBrush, cursorLable.rect.Location);
<a name="l00984"></a>00984 
<a name="l00985"></a>00985             }
<a name="l00986"></a>00986 
<a name="l00987"></a>00987         }
<a name="l00988"></a>00988 
<a name="l00989"></a>00989       
<a name="l00990"></a>00990     }
<a name="l00991"></a>00991     
<a name="l00992"></a>00992 
<a name="l00993"></a><a class="code" href="class_chart_v2_1_1_axis___plot_1_1_right_axis_dinamic.html">00993</a>     <span class="keyword">public</span> <span class="keyword">class </span><a class="code" href="class_chart_v2_1_1_axis___plot_1_1_right_axis_dinamic.html">RightAxisDinamic</a> : <a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html">Axis</a>
<a name="l00994"></a>00994     {
<a name="l00995"></a>00995 
<a name="l00996"></a><a class="code" href="class_chart_v2_1_1_axis___plot_1_1_right_axis_dinamic.html#a60798f1dc497c5f9eba3ef34fbaef4f3">00996</a>         <span class="keyword">public</span> <a class="code" href="class_chart_v2_1_1_axis___plot_1_1_right_axis_dinamic.html">RightAxisDinamic</a>(Rectangle rect)
<a name="l00997"></a>00997         {
<a name="l00998"></a>00998             cursorLable = <span class="keyword">new</span> <a class="code" href="class_chart_v2_1_1_axis___plot_1_1_cursor_info_lable.html">CursorInfoLable</a>();
<a name="l00999"></a>00999             style = <span class="keyword">new</span> Styles.AxisStyle();
<a name="l01000"></a>01000             style.magorTickFont = Skilful.Sample.AxisStyleRight;
<a name="l01001"></a>01001             cursorLable.font = Skilful.Sample.CursorLable_Right; <span class="comment">//style.magorTickFont;</span>
<a name="l01002"></a>01002 
<a name="l01003"></a>01003           
<a name="l01004"></a>01004 
<a name="l01005"></a>01005             refreshDrawingSurfaces(rect);
<a name="l01006"></a>01006 
<a name="l01007"></a>01007         }
<a name="l01008"></a>01008 
<a name="l01009"></a><a class="code" href="class_chart_v2_1_1_axis___plot_1_1_right_axis_dinamic.html#aa84240744ac07578ecbe778afd959738">01009</a>         <span class="keyword">public</span> <span class="keyword">override</span> <span class="keywordtype">void</span> refreshDrawingSurfaces(Rectangle gridSplitterRectangle)
<a name="l01010"></a>01010         {
<a name="l01011"></a>01011             <span class="keywordflow">if</span> (gridSplitterRectangle.Width &gt; 0 &amp;&amp; gridSplitterRectangle.Height &gt; 0)
<a name="l01012"></a>01012             {
<a name="l01013"></a>01013                 bmp = <span class="keyword">new</span> Bitmap(gridSplitterRectangle.Width, gridSplitterRectangle.Height);
<a name="l01014"></a>01014                 g = Graphics.FromImage(bmp);
<a name="l01015"></a>01015 
<a name="l01016"></a>01016             }
<a name="l01017"></a>01017             <span class="keywordflow">else</span>
<a name="l01018"></a>01018             {
<a name="l01019"></a>01019                 bmp = <span class="keyword">new</span> Bitmap(10, 10);
<a name="l01020"></a>01020                 g = Graphics.FromImage(bmp);
<a name="l01021"></a>01021             }
<a name="l01022"></a>01022         }
<a name="l01023"></a>01023 
<a name="l01024"></a><a class="code" href="class_chart_v2_1_1_axis___plot_1_1_right_axis_dinamic.html#ad07178d62f089191e8d2e2de1c7bc544">01024</a>         <span class="keyword">public</span> <span class="keyword">override</span> <span class="keywordtype">void</span> Draw(<span class="keywordtype">int</span>? seriesIndex)
<a name="l01025"></a>01025         {
<a name="l01026"></a>01026 
<a name="l01027"></a>01027             <span class="keywordflow">if</span> (list == null)
<a name="l01028"></a>01028                 <span class="keywordflow">return</span>;
<a name="l01029"></a>01029             <span class="keywordflow">if</span> (list.Count == 0)
<a name="l01030"></a>01030             {
<a name="l01031"></a>01031 
<a name="l01032"></a>01032                 g.DrawString(<span class="stringliteral">&quot;No series Selected.&quot;</span>, SystemFonts.DialogFont, Brushes.Beige, Point.Empty);
<a name="l01033"></a>01033             }
<a name="l01034"></a>01034             <span class="keywordflow">else</span>
<a name="l01035"></a>01035             {
<a name="l01036"></a>01036                 ind = (int)seriesIndex;
<a name="l01037"></a>01037             }
<a name="l01038"></a>01038 
<a name="l01039"></a>01039             price_format = list[ind].legend.price_format;
<a name="l01040"></a>01040 
<a name="l01041"></a>01041             <span class="comment">//just to check numbers height</span>
<a name="l01042"></a>01042             g.Clear(style.backColor);
<a name="l01043"></a>01043 
<a name="l01044"></a>01044             <span class="keywordflow">if</span> (ShouldDrawBorder)
<a name="l01045"></a>01045                 g.DrawRectangle(style.borderPen, 0, 0, bmp.Width - 1, bmp.Height - 1);
<a name="l01046"></a>01046 
<a name="l01047"></a>01047 
<a name="l01048"></a>01048             s = list[ind].viewPort.VPMaxPrice;
<a name="l01049"></a>01049             <span class="keywordflow">if</span>(list[ind].legend.log)
<a name="l01050"></a>01050                 s = (float)Math.Pow(10, s);
<a name="l01051"></a>01051 
<a name="l01052"></a>01052             lableSize = g.MeasureString(s.ToString(price_format), style.magorTickFont);
<a name="l01053"></a>01053 
<a name="l01054"></a>01054             howManyCanFit = bmp.Height / lableSize.Height;
<a name="l01055"></a>01055             <span class="keywordflow">if</span> (howManyCanFit &gt; 10) howManyCanFit = 10;
<a name="l01056"></a>01056 
<a name="l01057"></a>01057             <span class="keywordtype">float</span> diff = (list[ind].viewPort.VPMaxPrice - list[ind].viewPort.VPMinPrice);
<a name="l01058"></a>01058 
<a name="l01059"></a>01059             <span class="keywordtype">float</span> skolkoLableNaPrice = diff / howManyCanFit;
<a name="l01060"></a>01060 
<a name="l01061"></a>01061             <span class="keywordtype">int</span> pressicion = GetPrecisionOf(skolkoLableNaPrice, <span class="keyword">true</span>);
<a name="l01062"></a>01062             <span class="keywordflow">if</span> (pressicion &lt; 0)
<a name="l01063"></a>01063                 pressicion++;
<a name="l01064"></a>01064             <span class="keywordflow">if</span> (skolkoLableNaPrice &lt; 5 * Math.Pow(10, pressicion - 1))
<a name="l01065"></a>01065             {
<a name="l01066"></a>01066                 skolkoLableNaPrice = (float)Math.Pow(10, pressicion - 1);
<a name="l01067"></a>01067             }
<a name="l01068"></a>01068             <span class="keywordflow">else</span>
<a name="l01069"></a>01069             {
<a name="l01070"></a>01070                 skolkoLableNaPrice = 5 * (float)Math.Pow(10, pressicion - 1);
<a name="l01071"></a>01071 
<a name="l01072"></a>01072             }
<a name="l01073"></a>01073 
<a name="l01074"></a>01074             <span class="comment">// еще раз проверяю чтобы небыло случайных ошибок в округлении этого флоат. а то часто бывает вместо 0.05. пишет . 0.0499997</span>
<a name="l01075"></a>01075             <span class="keywordflow">if</span> (skolkoLableNaPrice &lt; 1)
<a name="l01076"></a>01076             {
<a name="l01077"></a>01077                 <span class="keywordflow">if</span> (pressicion &lt; 0)
<a name="l01078"></a>01078                     skolkoLableNaPrice = (float)Math.Round(skolkoLableNaPrice, 1 - pressicion);
<a name="l01079"></a>01079             }
<a name="l01080"></a>01080 
<a name="l01081"></a>01081             <span class="comment">//увеличиваю делитель если слишком плотно итут лейблы</span>
<a name="l01082"></a>01082             <span class="keywordflow">if</span> ((diff / skolkoLableNaPrice) &gt; howManyCanFit)
<a name="l01083"></a>01083             {
<a name="l01084"></a>01084                 tempString = skolkoLableNaPrice.ToString();
<a name="l01085"></a>01085                 <span class="keywordflow">if</span> (tempString.Contains(<span class="stringliteral">&quot;5&quot;</span>))
<a name="l01086"></a>01086                     skolkoLableNaPrice *= 2;
<a name="l01087"></a>01087                 <span class="keywordflow">if</span> (tempString.Contains(<span class="stringliteral">&quot;1&quot;</span>))
<a name="l01088"></a>01088                     skolkoLableNaPrice *= 5;
<a name="l01089"></a>01089                 <span class="comment">// еще раз проверяю чтобы небыло случайных ошибок в округлении этого флоат. а то часто бывает вместо 0.05. пишет . 0.0499997</span>
<a name="l01090"></a>01090                 <span class="keywordflow">if</span> (skolkoLableNaPrice &lt; 1)
<a name="l01091"></a>01091                 {
<a name="l01092"></a>01092                     <span class="keywordflow">if</span> (pressicion &lt; 0)
<a name="l01093"></a>01093                         skolkoLableNaPrice = (float)Math.Round(skolkoLableNaPrice, 1 - pressicion);
<a name="l01094"></a>01094                 }
<a name="l01095"></a>01095             }
<a name="l01096"></a>01096 
<a name="l01097"></a>01097 
<a name="l01098"></a>01098             start = list[ind].viewPort.VPMinPrice - list[ind].viewPort.VPMinPrice % skolkoLableNaPrice;
<a name="l01099"></a>01099             finish = list[ind].viewPort.VPMaxPrice + skolkoLableNaPrice;
<a name="l01100"></a>01100             <span class="comment">//сокращение вычислений (выдрал из цикла)</span>
<a name="l01101"></a>01101             pressicion = 1 - pressicion;
<a name="l01102"></a>01102             <span class="comment">//проверка на необходимость округления. Для больших цифр тут могла возникнуть ошибка из-за отрицательного значения</span>
<a name="l01103"></a>01103             <span class="keywordflow">if</span> (pressicion &lt; 0)
<a name="l01104"></a>01104                 pressicion = 0;
<a name="l01105"></a>01105             <span class="keywordflow">if</span> (grid.style.IsHorizontalVisible)
<a name="l01106"></a>01106                 grid.horizontalLevelsArray.Clear();
<a name="l01107"></a>01107 
<a name="l01108"></a>01108 
<a name="l01109"></a>01109 
<a name="l01110"></a>01110             <span class="keywordflow">for</span> (<span class="keywordtype">float</span> i = start; i &lt;= finish; i = (float)Math.Round(i + skolkoLableNaPrice, pressicion))
<a name="l01111"></a>01111             {
<a name="l01112"></a>01112 
<a name="l01113"></a>01113 
<a name="l01114"></a>01114                 <span class="keywordflow">for</span> (<span class="keywordtype">float</span> ii = skolkoLableNaPrice / 5; ii &lt;= skolkoLableNaPrice; ii += skolkoLableNaPrice / 5)
<a name="l01115"></a>01115                 {
<a name="l01116"></a>01116                     tempCoord = list[ind].viewPort.PriceToPixels(ii + i);
<a name="l01117"></a>01117 
<a name="l01118"></a>01118                         g.DrawLine(style.minorTickPen, 0, tempCoord, 5, tempCoord);
<a name="l01119"></a>01119                 }
<a name="l01120"></a>01120 
<a name="l01121"></a>01121 
<a name="l01122"></a>01122                 tempCoord = list[ind].viewPort.PriceToPixels(i);
<a name="l01123"></a>01123                 g.DrawLine(style.magorTickPen, 0, tempCoord, 10, tempCoord);
<a name="l01124"></a>01124                 
<a name="l01125"></a>01125                 s = list[ind].legend.log ? (float)Math.Pow(10, i) : i;
<a name="l01126"></a>01126 
<a name="l01127"></a>01127                 g.DrawString(s.ToString(price_format), style.magorTickFont, style.magorFontBrush, 10, tempCoord - lableSize.Height / 2);
<a name="l01128"></a>01128 
<a name="l01129"></a>01129                 <span class="keywordflow">if</span> (grid.style.IsHorizontalVisible)
<a name="l01130"></a>01130                     grid.horizontalLevelsArray.Add(tempCoord);
<a name="l01131"></a>01131 
<a name="l01132"></a>01132             }
<a name="l01133"></a>01133 
<a name="l01134"></a>01134 
<a name="l01135"></a>01135             <span class="keywordflow">if</span> (cursorLable != null &amp;&amp; cursorLable.IsVisible)
<a name="l01136"></a>01136             {
<a name="l01137"></a>01137                 cursorLable.rect.Size = g.MeasureString(cursorLable.Value.ToString(price_format), cursorLable.font);
<a name="l01138"></a>01138                 cursorLable.rect.Offset(0, -cursorLable.rect.Height / 2);
<a name="l01139"></a>01139                 
<a name="l01140"></a>01140                 g.FillRectangle(cursorLable.backBrush, cursorLable.rect);
<a name="l01141"></a>01141                 <span class="keywordflow">if</span> (cursorLable.borderPen != null)
<a name="l01142"></a>01142                     g.DrawRectangle(cursorLable.borderPen, cursorLable.rect.X, cursorLable.rect.Y, cursorLable.rect.Width, cursorLable.rect.Height);
<a name="l01143"></a>01143                 g.DrawString(cursorLable.Value.ToString(price_format), cursorLable.font, cursorLable.fontBrush, cursorLable.rect.Location);
<a name="l01144"></a>01144 
<a name="l01145"></a>01145             }
<a name="l01146"></a>01146             <span class="keywordflow">if</span> (targetLable != null &amp;&amp; IsTargetsVisible)
<a name="l01147"></a>01147             {
<a name="l01148"></a>01148 
<a name="l01149"></a>01149                 <span class="keywordflow">foreach</span> (<span class="keywordtype">int</span> i <span class="keywordflow">in</span> targetLable.Keys)
<a name="l01150"></a>01150                 {
<a name="l01151"></a>01151                     targetLable[i].rect.Size = cursorLable.rect.Size;
<a name="l01152"></a>01152 
<a name="l01153"></a>01153 
<a name="l01154"></a>01154                     targetLable[i].rect.Y = list[ind].viewPort.PriceToPixels(targetLable[i].Value);
<a name="l01155"></a>01155 
<a name="l01156"></a>01156                     targetLable[i].rect.Offset(0, -targetLable[i].rect.Height / 2);
<a name="l01157"></a>01157                     targetLable[i].rect.X = 10;
<a name="l01158"></a>01158                     g.FillRectangle(Styles.ModelStyle.lablesBrush, targetLable[i].rect);
<a name="l01159"></a>01159                     <span class="keywordflow">if</span> (targetLable[i].borderPen != null)
<a name="l01160"></a>01160                         g.DrawRectangle(cursorLable.borderPen, 10, targetLable[i].rect.Y, targetLable[i].rect.Width, targetLable[i].rect.Height);
<a name="l01161"></a>01161 
<a name="l01162"></a>01162 
<a name="l01163"></a>01163                    
<a name="l01164"></a>01164                     g.DrawString( list[ind].legend.log ?
<a name="l01165"></a>01165                                        Math.Pow(10, targetLable[i].Value).ToString(price_format) :
<a name="l01166"></a>01166                                        targetLable[i].Value.ToString(price_format), targetLable[i].font, targetLable[i].fontBrush, 10, targetLable[i].rect.Y);
<a name="l01167"></a>01167 
<a name="l01168"></a>01168                 }
<a name="l01169"></a>01169                    
<a name="l01170"></a>01170                 
<a name="l01171"></a>01171                
<a name="l01172"></a>01172             }
<a name="l01173"></a>01173 
<a name="l01174"></a>01174         }
<a name="l01175"></a>01175 
<a name="l01176"></a>01176 
<a name="l01177"></a>01177     }
<a name="l01178"></a><a class="code" href="class_chart_v2_1_1_axis___plot_1_1_right_axis_static.html">01178</a>     <span class="keyword">public</span> <span class="keyword">class </span><a class="code" href="class_chart_v2_1_1_axis___plot_1_1_right_axis_static.html">RightAxisStatic</a> : <a class="code" href="class_chart_v2_1_1_axis___plot_1_1_axis.html">Axis</a>
<a name="l01179"></a>01179     {
<a name="l01180"></a><a class="code" href="class_chart_v2_1_1_axis___plot_1_1_right_axis_static.html#a7910b35970a139aba087f16a0ac20c3e">01180</a>         <span class="keyword">public</span> <a class="code" href="class_chart_v2_1_1_axis___plot_1_1_right_axis_static.html">RightAxisStatic</a>(Rectangle rect)
<a name="l01181"></a>01181         {
<a name="l01182"></a>01182             cursorLable = <span class="keyword">new</span> <a class="code" href="class_chart_v2_1_1_axis___plot_1_1_cursor_info_lable.html">CursorInfoLable</a>();
<a name="l01183"></a>01183             style = <span class="keyword">new</span> Styles.AxisStyle();
<a name="l01184"></a>01184             cursorLable.font = style.magorTickFont;<span class="comment">//Skilful.Sample.CursorLable_Right; </span>
<a name="l01185"></a>01185             refreshDrawingSurfaces(rect);
<a name="l01186"></a>01186 
<a name="l01187"></a>01187         }
<a name="l01188"></a>01188 
<a name="l01189"></a><a class="code" href="class_chart_v2_1_1_axis___plot_1_1_right_axis_static.html#afe994f8489bde0dca9cf309b41ab8e10">01189</a>         <span class="keyword">public</span> <span class="keyword">override</span> <span class="keywordtype">void</span> refreshDrawingSurfaces(Rectangle gridSplitterRectangle)
<a name="l01190"></a>01190         {
<a name="l01191"></a>01191             <span class="keywordflow">if</span> (gridSplitterRectangle.Width &gt; 0 &amp;&amp; gridSplitterRectangle.Height &gt; 0)
<a name="l01192"></a>01192             {
<a name="l01193"></a>01193                 bmp = <span class="keyword">new</span> Bitmap(gridSplitterRectangle.Width, gridSplitterRectangle.Height);
<a name="l01194"></a>01194                 g = Graphics.FromImage(bmp);
<a name="l01195"></a>01195 
<a name="l01196"></a>01196             }
<a name="l01197"></a>01197             <span class="keywordflow">else</span>
<a name="l01198"></a>01198             {
<a name="l01199"></a>01199                 bmp = <span class="keyword">new</span> Bitmap(10, 10);
<a name="l01200"></a>01200                 g = Graphics.FromImage(bmp);
<a name="l01201"></a>01201             }
<a name="l01202"></a>01202         }
<a name="l01203"></a>01203 
<a name="l01204"></a><a class="code" href="class_chart_v2_1_1_axis___plot_1_1_right_axis_static.html#a0cfcca7815faafcf6c47901e70a11d65">01204</a>         <span class="keyword">public</span> <span class="keyword">override</span> <span class="keywordtype">void</span> Draw(<span class="keywordtype">int</span>? seriesIndex)
<a name="l01205"></a>01205         {
<a name="l01206"></a>01206 
<a name="l01207"></a>01207             <span class="keywordflow">if</span> (list == null)
<a name="l01208"></a>01208                 <span class="keywordflow">return</span>;
<a name="l01209"></a>01209             <span class="keywordflow">if</span> (list.Count == 0)
<a name="l01210"></a>01210             {
<a name="l01211"></a>01211 
<a name="l01212"></a>01212                 g.DrawString(<span class="stringliteral">&quot;No series Selected.&quot;</span>, SystemFonts.DialogFont, Brushes.Beige, Point.Empty);
<a name="l01213"></a>01213             }
<a name="l01214"></a>01214             <span class="keywordflow">else</span>
<a name="l01215"></a>01215             {
<a name="l01216"></a>01216                 ind = (int)seriesIndex;
<a name="l01217"></a>01217             }
<a name="l01218"></a>01218 
<a name="l01219"></a>01219             price_format = list[ind].legend.price_format;
<a name="l01220"></a>01220 
<a name="l01221"></a>01221 
<a name="l01222"></a>01222             <span class="comment">//just to check numbers height</span>
<a name="l01223"></a>01223             g.Clear(style.backColor);
<a name="l01224"></a>01224 
<a name="l01225"></a>01225             <span class="keywordflow">if</span> (ShouldDrawBorder)
<a name="l01226"></a>01226                 g.DrawRectangle(style.borderPen, 0, 0, bmp.Width - 1, bmp.Height - 1);
<a name="l01227"></a>01227 
<a name="l01228"></a>01228             <span class="keywordtype">float</span> lableHeight = g.MeasureString(<span class="stringliteral">&quot;1234&quot;</span>, style.magorTickFont).Height;
<a name="l01229"></a>01229             <span class="keywordtype">float</span> temp = bmp.Height / lableHeight;
<a name="l01230"></a>01230 
<a name="l01231"></a>01231 
<a name="l01232"></a>01232 
<a name="l01233"></a>01233 
<a name="l01234"></a>01234             <span class="keywordflow">if</span> (grid.style.IsHorizontalVisible)
<a name="l01235"></a>01235                 grid.horizontalLevelsArray.Clear();
<a name="l01236"></a>01236 
<a name="l01237"></a>01237             <span class="keywordflow">for</span> (<span class="keywordtype">float</span> i = 0; i &lt; temp*5; i++)
<a name="l01238"></a>01238             {
<a name="l01239"></a>01239                 g.DrawLine(style.minorTickPen, 0, i * lableHeight/5, 5, i * lableHeight/5);
<a name="l01240"></a>01240             }
<a name="l01241"></a>01241             <span class="keywordflow">for</span> (<span class="keywordtype">float</span> i = 0; i &lt; temp; i++)
<a name="l01242"></a>01242             {
<a name="l01243"></a>01243                 <span class="comment">// g.DrawLine(style.minorTickPen, 0, tempCoord, 5, tempCoord);</span>
<a name="l01244"></a>01244                 g.DrawLine(style.magorTickPen, 0, i * lableHeight, 10, i * lableHeight);
<a name="l01245"></a>01245                
<a name="l01246"></a>01246                 s = list[ind].viewPort.PixelToPrice(i * lableHeight);
<a name="l01247"></a>01247 
<a name="l01248"></a>01248                 <span class="keywordflow">if</span> (list[ind].legend.log) s = (float)Math.Pow(10, s);
<a name="l01249"></a>01249 
<a name="l01250"></a>01250                 g.DrawString(s.ToString(price_format), style.magorTickFont, style.magorFontBrush, 10, i * lableHeight - lableHeight / 2);
<a name="l01251"></a>01251 
<a name="l01252"></a>01252                 <span class="keywordflow">if</span> (grid.style.IsHorizontalVisible)
<a name="l01253"></a>01253                     grid.horizontalLevelsArray.Add(tempCoord);
<a name="l01254"></a>01254             }
<a name="l01255"></a>01255 
<a name="l01256"></a>01256 
<a name="l01257"></a>01257             <span class="keywordflow">if</span> (cursorLable != null &amp;&amp; cursorLable.IsVisible)
<a name="l01258"></a>01258             {
<a name="l01259"></a>01259                 cursorLable.rect.Size = g.MeasureString(cursorLable.Value.ToString(price_format), cursorLable.font);
<a name="l01260"></a>01260                 cursorLable.rect.Offset(0, -cursorLable.rect.Height / 2);
<a name="l01261"></a>01261 
<a name="l01262"></a>01262                 g.FillRectangle(cursorLable.backBrush, cursorLable.rect);
<a name="l01263"></a>01263                 <span class="keywordflow">if</span> (cursorLable.borderPen != null)
<a name="l01264"></a>01264                     g.DrawRectangle(cursorLable.borderPen, cursorLable.rect.X, cursorLable.rect.Y, cursorLable.rect.Width, cursorLable.rect.Height);
<a name="l01265"></a>01265                 g.DrawString(cursorLable.Value.ToString(price_format), cursorLable.font, cursorLable.fontBrush, cursorLable.rect.Location);
<a name="l01266"></a>01266 
<a name="l01267"></a>01267             }
<a name="l01268"></a>01268                <span class="keywordflow">if</span> (targetLable != null &amp;&amp; IsTargetsVisible)
<a name="l01269"></a>01269             {
<a name="l01270"></a>01270                 <span class="keywordflow">foreach</span> (<span class="keywordtype">int</span> i <span class="keywordflow">in</span> targetLable.Keys)
<a name="l01271"></a>01271                 {
<a name="l01272"></a>01272                     targetLable[i].rect.Size = cursorLable.rect.Size;
<a name="l01273"></a>01273 
<a name="l01274"></a>01274                     targetLable[i].rect.Y = list[ind].viewPort.PriceToPixels(targetLable[i].Value);
<a name="l01275"></a>01275 
<a name="l01276"></a>01276                     targetLable[i].rect.Offset(0, -targetLable[i].rect.Height / 2);
<a name="l01277"></a>01277                     targetLable[i].rect.X = 10;
<a name="l01278"></a>01278                     g.FillRectangle(Styles.ModelStyle.lablesBrush, targetLable[i].rect);
<a name="l01279"></a>01279                     <span class="keywordflow">if</span> (targetLable[i].borderPen != null)
<a name="l01280"></a>01280                         g.DrawRectangle(cursorLable.borderPen, 10, targetLable[i].rect.Y, targetLable[i].rect.Width, targetLable[i].rect.Height);
<a name="l01281"></a>01281                     g.DrawString(targetLable[i].Value.ToString(price_format), targetLable[i].font, targetLable[i].fontBrush, 10, targetLable[i].rect.Y);
<a name="l01282"></a>01282 
<a name="l01283"></a>01283                 }
<a name="l01284"></a>01284                
<a name="l01285"></a>01285             }
<a name="l01286"></a>01286 
<a name="l01287"></a>01287 
<a name="l01288"></a>01288         }
<a name="l01289"></a>01289     }
<a name="l01290"></a>01290 }
</pre></div></div>
</div>
<!--- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&nbsp;</span>Указатель</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&nbsp;</span>Классы</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&nbsp;</span>Пространства имен</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&nbsp;</span>Файлы</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&nbsp;</span>Функции</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&nbsp;</span>Переменные</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&nbsp;</span>Перечисления</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&nbsp;</span>Свойства</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&nbsp;</span>События</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<hr class="footer"/><address class="footer"><small>Создано системой&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
</body>
</html>
